2
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。

4

4 回答 4

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);
}
于 2013-04-01T08:21:14.973 回答
2

检查您是否在方法之前调用了setContentViewonResume并且该布局包含listTimer. 这可能是您的观点的原因null

于 2013-04-01T08:12:55.900 回答
1

首先,始终将super.onResume()其作为Activity.onResume()方法的第一个语句。

当您也使用findViewById()for ListViewset时OnItemClickListener。我认为它会解决你的问题。

于 2013-04-01T08:12:28.947 回答
1

尝试替换此字符串:

View v = arg0.getChildAt(arg2);

View v = arg1;
于 2013-04-02T13:51:56.637 回答