java - Android 中的空指针

标签 java android

我正在尝试在 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/

相关文章:

java - AAR 库中的 Android Gradle 项目依赖项因 3.5.x 版本而失败

java - 分页库是否可以用于在没有关联 UI 组件的情况下进行后台 API 调用?

java - 在 onCreateView 之外使用 findViewById 返回 null

java - 数据截断错误 - 列数据太长

java - 用于处理 HttpClient 上传的文件的服务器代码

java - 特定数据的 SAXParser 失败

java - Weblogic 管理控制台未启动

android - 无法将位置从一项 Activity 返回到另一项 Activity

android - "Unable to merge dex"使用房间时

android - 在 Android 中扩展样式中的属性