当我尝试从FirstFragment调用showPopup2时,我得到一个空指针异常。这是我的ShowPopup类,从Android中的片段启动PopupWindow的实例作为一个类中的类
public class ShowPopup extends Activity {
public void showPopup2(View v) {
Button btnDismiss;
LayoutInflater layoutInflater = (LayoutInflater)showPopup.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.popup_layout, null);
PopupWindow popupWindow = new PopupWindow(layout, 580, 500, true);
popupWindow.showAtLocation(layout, Gravity.CENTER, 0, 40);
btnDismiss=(Button) layout.findViewById(R.id.btnDismissxml);
btnDismiss.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0){
popupWindow.dismiss();
}
});
}
}
,这是片段,
public class FirstFragment extends Fragment implements OnClickListener{
public static Context context;
Button btnPopup;
public ShowPopup ShowPopup;
@Override
public void onCreate(Bundle savedDataEntryInstanceState){
super.onCreate(savedDataEntryInstanceState);
}
//@Override
public View onCreateView(LayoutInflater inflater{
View v = inflater.inflate(R.layout.first_fragment, container, false);
btnPopup = (Button)v.findViewById(R.id.btnPopupxml);
btnPopup.setOnClickListener(this);
populateFirstFragment(v);
return v;
}
//@Override
public void onViewCreated(View v) {
btnPopup = (Button)v.findViewById(R.id.btnPopupxml);
btnPopup.setOnClickListener(this);
}
//@Override
public void onClick(View v) {
ShowPopup.showPopup2(v);
}
}
是什么原因造成的空指针异常?有没有更好的方法来构造这个?我的目标是能够(1)通过我的应用程序中的其他方法访问此内容,以及(2)不会让此方法混乱我的碎片。
在此先感谢....
我强烈希望在有showPopup()单独的文件。任何有关最佳方式的建议?谢谢。 – portsample 2014-12-05 20:01:53