protected void onResume(){
listTimer = (ListView) findViewById(R.id.listTimer);
fetchData();
tadapt = new TimerAdapter(RoutineList, this);
listTimer.setAdapter(tadapt);
listTimer.performItemClick(v1, 0, listval);
super.onResume();
}
listTimer.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
v1 = arg0;
pos = arg2;
listval = arg3;
View v = arg0.getChildAt(arg2);
TextView tvM = (TextView) v.findViewById(R.id.tvETimer);
}
注意:我在View上获得了Nullpointerexception。
答案 0 :(得分:5)
视图已经在变量arg1中..无需再次分配给另一个变量v ..
试试这个......
listTimer.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
v1 = arg0;
pos = arg2;
listval = arg3;
TextView tvM = (TextView) arg1.findViewById(R.id.tvETimer);
}
答案 1 :(得分:2)
检查您是否在onResume
方法之前调用了setContentView,并且该布局包含listTimer
。这可能是您的观点为null
的原因。
答案 2 :(得分:1)
首先,始终将super.onResume()
作为Activity.onResume()
方法的第一个陈述。
当您使用findViewById()
ListView
设置OnItemClickListener
时也是如此。
我认为它会解决你的问题。
答案 3 :(得分:1)
尝试替换此字符串:
View v = arg0.getChildAt(arg2);
与
View v = arg1;