popupwindow 出錯
源代碼
public class MenuWindow extends PopupWindow {
private View contentView = null;
public MenuWindow(final Activity context) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
contentView = inflater.inflate(R.layout.menu_window, null);
// 設置selectpopwindow的view
this.setContentView(contentView);
// 設置selectpopwindow彈出窗體的高
this.setHeight(LayoutParams.WRAP_CONTENT);
// 設置selectpopwindow彈出窗體的寬
this.setWidth(140);
// 設置selectpopwindow彈出窗體可點擊
this.setFocusable(true);
this.setOutsideTouchable(true);
// 刷新狀態
this.update();
// 實例化一個colordrawable對象,設置顏色半透明
ColorDrawable drawable = new ColorDrawable(0000000000);
// 點back鍵 和其他地方使其消失,設置這個才能觸發ondismisslistener,設置其他控件變化等操作
this.setBackgroundDrawable(drawable);
LinearLayout take = (LinearLayout) contentView
.findViewById(R.id.takelayout);
take.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MenuWindow.this.dismiss();
}
});
LinearLayout pic = (LinearLayout) contentView
.findViewById(R.id.piclayout);
pic.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MenuWindow.this.dismiss();
}
});
}
public void ShowMenuWindow(View parent) {
if (!this.isShowing()) {
this.showAsDropDown(parent, 5, 5);
} else {
this.dismiss();
}
}
跳轉代碼
public class RegisterActivity extends Activity {
private Button btnUpload;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.relayout);
initControl();
btnUpload.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
MenuWindow menu = new MenuWindow(null);
menu.ShowMenuWindow(arg0);
}
});
}
private void initControl() {
btnUpload = (Button) findViewById(R.id.btnUploadpic);
}
}
代碼沒有顯示出錯,就是運行時一點擊就退出,不知道哪里的問題,哪位救救我啊
2016-09-28
你在實例化MenuWindow?時new MenuWindow(null)傳入了null,使得構造函數執行
LinearLayout pic = (LinearLayout) contentView.findViewById(R.id.piclayout)時產生了空指針引用