我正在尝试在Android Activity中创建一个AlertDialog,它会增加或减少TextView中的值。
我使用此代码在AlertDialog中插入Android XML(enter_quantity是xml文件的名称)
LayoutInflater li = LayoutInflater.from(context);
View enterQuantityView = li.inflate(R.layout.enter_quantity, null);
final AlertDialog.Builder dialogEnterQuantity = new AlertDialog.Builder(context);
dialogEnterQuantity.setView(enterQuantityView);
我在(CreateListSearch.java)
中输入了功能final Button btAdd = (Button)findViewById(R.id.btEnterQuantity_Add);
final Button btSub = (Button)findViewById(R.id.btEnterQuantity_Sub);
final TextView tvQuantity = (TextView)findViewById(R.id.tvEnterQuantity_Quantity);
btAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
int AddOne = Integer.parseInt(tvQuantity.getText().toString()) + 1;
tvQuantity.setText("" + AddOne);
}
});
btSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int SubOne = Integer.parseInt(tvQuantity.getText().toString()) - 1;
if (SubOne >= 0){
tvQuantity.setText("" + SubOne);
}else{
tvQuantity.setText("0");
}
}
});
但是在行“btAdd.setOnClickListener”(新的View.OnClickListener(){“
中发生了NullPointerException我可以做些什么来解决他的解决方案?
答案 0 :(得分:3)
CHange to
final Button btAdd = (Button)enterQuantityView.findViewById(R.id.btEnterQuantity_Add);
final Button btSub = (Button)enterQuantityView.findViewById(R.id.btEnterQuantity_Sub);
final TextView tvQuantity = (TextView)enterQuantityView.findViewById(R.id.tvEnterQuantity_Quantity);
我相信该按钮位于enter_quantity.xml
。
您需要在findViewById
中使用无效视图对象,因为它会在当前膨胀的布局中查找视图
答案 1 :(得分:0)
嗨,请看这里
final Button btAdd = (Button)findViewById(R.id.btEnterQuantity_Add);
final Button btSub = (Button)findViewById(R.id.btEnterQuantity_Sub);
final TextView tvQuantity = (TextView)findViewById(R.id.tvEnterQuantity_Quantity);
更改
final Button btAdd = (Button)enterQuantityView.findViewById(R.id.btEnterQuantity_Add);
final Button btSub = (Button)enterQuantityView.findViewById(R.id.btEnterQuantity_Sub);
final TextView tvQuantity = (TextView)enterQuantityView.findViewById(R.id.tvEnterQ
在此示例代码上,以给定的方式编写您的警报对话框,以便于理解
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("Your Title");
// set dialog message
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
答案 2 :(得分:0)
您必须首先在Builder中创建并显示AlertDialog。
还从第一个节点获取视图引用,即enterQuantityView。
LayoutInflater li = LayoutInflater.from(context);
View enterQuantityView = li.inflate(R.layout.enter_quantity, null);
final AlertDialog.Builder dialogEnterQuantity = new AlertDialog.Builder(context);
dialogEnterQuantity.setView(enterQuantityView);
AlertDialog alertDialog = dialogEnterQuantity.create();
alertDialog.show();