我有listView项目,每个项目都有一些按钮和textView,我想抓住当前listItem上当前textView或buttom的点击,并对它们进行一些更改。 为此,我在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 ......
将很高兴任何想法如何解决这个问题:)
答案 0 :(得分:1)
@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
中的值仅为数字,或准备好用NumberFormatException
抓住它。