Android 从CountDownTimer onTick方法更新文本视图

Android 从CountDownTimer onTick方法更新文本视图,android,android-adapter,Android,Android Adapter,我使用了一个倒计时显示剩余的时间内视图持有人文本视图。我的代码结构如下: Class Demo extends ArrayAdapter<ListItem> { ListItemHolder holder=new ListItemHolder(); @Override public View getView(int position, View convertView, ViewGroup par

我使用了一个倒计时显示剩余的时间内视图持有人文本视图。我的代码结构如下:

     Class Demo extends ArrayAdapter<ListItem>
     {        
         ListItemHolder holder=new ListItemHolder();

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
           View row = convertView;
           holder.tv= (TextView)row.findViewById(R.id.tv_timer);

          //Starting the countdown timer
            return row;
        }

        static class ListItemHolder
        {
            TextView tv;
            ............        
        }         

        public class MyCount extends CountDownTimer{

            public MyCount(long millisInFuture, long countDownInterval) {
                super(millisInFuture, countDownInterval);
            }           

            @Override
            public void onFinish() {

            }

           @Override


            public void onTick(long millisUntilFinished) {
                   holder.tv.setText("time");
                   }
         }
   }
类演示扩展了ArrayAdapter
{        
ListItemHolder=新的ListItemHolder();
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
holder.tv=(TextView)row.findViewById(R.id.tv\u计时器);
//启动倒计时
返回行;
}
静态类ListItemHolder
{
文本视图电视;
............        
}         
公共类MyCount扩展了倒计时{
公共MyCount(长百万未来,长倒计时间隔){
超级(毫秒未来,倒计时间隔);
}           
@凌驾
公共无效onFinish(){
}
@凌驾
公共void onTick(长毫秒未完成){
holder.tv.setText(“时间”);
}
}
}
当我尝试将onTick值设置为列表项持有者内的文本视图时,应用程序抛出空指针异常。有人能指出我做错了什么吗

提前感谢,


Timson

getView中的convertView可能为空

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
       View row = convertView;
       if (row == null) {
           LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                row = vi.inflate(R.layout.your layout, null);
          }
       holder.tv= (TextView)row.findViewById(R.id.tv_timer);

      //Starting the countdown timer
        return row;
    }

您需要检查convertView是否为空,如果为空,则对视图进行充气

public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    if(row==null){
        holder = new ListItemHolder();
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.your_layout, null);
        holder.tv= (TextView)row.findViewById(R.id.tv_timer);
        row.setTag(holder);
    }else{
        holder = (ListItemHolder) row.getTag();
    }
    //Starting the countdown timer
    return row;
}

您尚未初始化一个变量。
holder
tv
。您是否初始化了tv变量?抱歉,我没有包含代码,请查找已编辑的代码嗨,丹尼尔,谢谢您的建议。异常发生于onTick方法,而不是getView。我正在使用上面相同的代码…我知道,但问题是onTick()上的textview为null,因为您尚未在getView()上初始化它,因为row.findViewById(R.id.tv_timer);可能正在返回null。