我正在尝试在 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(new View.OnClickListener() {”行发生了 NullPointerException
我可以做什么来修复他的解决方案?
最佳答案
更改为
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
中。
您需要使用膨胀的 View 对象来findViewById
,因为它在当前膨胀的布局中查找 View
关于java - Android 中的空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014405/