尝试在 listViewItem 中捕获 onClickListener 时出现 NPE

NPE when trying catch onClickListener in listViewItem

我有带有项目的 listView,每个项目都有一些按钮和 textView,我想捕获对当前 textView 或当前 listItem 上的按钮的点击,并对它们进行一些更改。 为此,我在 cursorAdapter:

中使用 getView 方法
@Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        View rootView =  super.getView(position, convertView, parent);
        mCounter = (TextView) rootView.findViewById(R.id.textView_counter);


        mCounter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int counter = Integer.getInteger(mCounter.getText().toString());
                mCounter.setText(String.valueOf(counter + 1));
                }
            });
            return rootView;
        }

但是当我尝试做 mCounter.getText().toString() 我得到 NPE...

很高兴有任何解决此问题的想法:)

@Override
public void onClick(View v) {
    TextView tv = (TextView)v;
    int counter = Integer.getInteger(tv.getText().toString());
    tv.setText(String.valueOf(counter + 1));
}

确保 v 始终是 TextView(在您的情况下是)或准备用 ClassCastException.

捕获它

更新

好的,更改以下行

int counter = Integer.getInteger(tv.getText().toString());

进入

int counter = Integer.parseInt(tv.getText().toString());

更新 2

确保 TextView 中的值仅为 number 或准备好用 NumberFormatException.

捕获它