Android(安卓)PopupWindow & some problems
1====main.xml.
Define a Show_button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button android:id="@+id/show_button"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:text="Show"
/>
</LinearLayout>
2====popupwindow.xml
Define the Content to Popup Window
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="NIhao,woahiaffaafaf!!@@@##"
android:textSize="20sp"
android:textColor="#FF0000"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="30dp"
android:id="@+id/name_edit"
/>
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:text="Enter Name"
android:id="@+id/name_button"
/>
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:text="Cancel"
android:id="@+id/cancel_button"
/>
</LinearLayout>
3====MainActivity.java
package com.android.tian;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
Button mShowBtn;
Button mNameBtn;
Button mCancelBtn;
EditText mNameEdit;
View vPopupWindowView;
LayoutInflater inflater;
PopupWindow mPopupWindow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取控件
mShowBtn = (Button)findViewById(R.id.show_button);
mNameBtn = (Button)findViewById(R.id.name_button);
//响应按钮事件
mShowBtn.setOnClickListener(new ClickEvent());
//??!!mCancelBtn.setOnClickListener(new ClickEvent());
}
public void showPopWindow(Context context,View parent){
inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mCancelBtn = (Button)findViewById(R.id.cancel_button);
mNameEdit=(EditText)findViewById(R.id.name_edit);
//!!mNameBtn.setOnClickListener(new ClickEvent());
mCancelBtn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mPopupWindow.dismiss();
}
});
vPopupWindowView = inflater.inflate(R.layout.popupwindow,null,false);
mPopupWindow = new PopupWindow(vPopupWindowView,300,300,true);
//mPopupWindow.showAtLocation(parent,Gravity.LEFT,0,0);
mPopupWindow.showAsDropDown(parent);
}
//统一处理的按钮事件类
class ClickEvent implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if((Button)v==mShowBtn){
showPopWindow(MainActivity.this,MainActivity.this.findViewById(R.id.show_button));
}else if((Button)v==mNameBtn){
mNameEdit = (EditText)MainActivity.this.findViewById(R.id.name_edit);
mNameEdit.setText("What");
}else if((Button)v==mCancelBtn){
mPopupWindow.dismiss();
}
}
}
}
Problems:
为什么出错!!!!
好像是mCancleBtn的响应事件的错误???可我不知道为什么,高手指教!
更多相关文章
- android radiobutton选中字体颜色改变的方法
- 【Android】控件和基本事件响应的三种方式
- android中数据存储的contentprovider的使用方法
- Android(安卓)向菜单按钮说再见
- android实现双击事件的监听
- Android简易计算器——LinearLayout布局
- Android电子拍卖系统总结四
- Android流式播放MP3
- Android关于OnTouch 和OnClick同时调用冲突的解决方案