2 starwar2012 starwar2012 于 2013.08.26 16:23 提问

Android handler的报错

使用handler 更新应用

 }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.messages, menu);
        return true;
    }

    class UpdateTask implements Runnable {

        @Override
        public void run() {
            // TODO Auto-generated method stub

            setContentView(R.layout.activity_messages);

            Intent intent = getIntent();

            String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
            String id = intent.getStringExtra(MainActivity.EXTRA_ID);
            String[] lst = null;
            ListView lm=(ListView)findViewById(R.id.listView1);
            TextView tv = (TextView)findViewById(R.id.textView1);

            tv.setText("Welcome " + message);

            CallSoap cs=new CallSoap();

            lst=cs.GetMessage(id);

            ArrayAdapter<String> adpt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,lst);

            lm.setAdapter(adpt);

            handler.postDelayed(this, 500);
        }
    }
}

但是报错:

ArrayAdapter<String> adpt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,lst);

Text: Constructor ArrayAdapter is undefined

3个回答

shaojie519
shaojie519   2013.08.26 23:47
已采纳

ArrayAdapter adpt = new ArrayAdapter(this, android.R.layout.simple_list_item_1,lst); 构造函数的第一个参数是context,所以应该写成XXXActivity.this 。不过楼主在 runnable即非Ui线程里处理界面是会出问题的

cj6585256
cj6585256   2013.08.27 17:11

你这个this代表的是这个Runnable 应该写成YourActivity.this

u011133213
u011133213   2013.09.05 13:11

这里的this的问题,this不是指代之前那个activity了!你可以把它传递过来

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!