在一个activity里面有一个button,一个textview,button的onclick操作是一个挺耗时的操作,我想在点击button的时候让textview显示正在查询这样的字符,提示用户现在的操作,代码如下
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.network);
Button locbtn =(Button)findViewById(R.id.locbutton);
locbtn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.locbutton:
TextView textview;
textview=(TextView)findViewById(R.id.querystate);
textview.setText("Accuracy: Querying..."); LocationInfo locationinfo=new LocationInfo();
locationinfo=GetLocation(cellinfos);
}
}
点击完button后,textview并不更新,而是要等到onclick事件执行完毕后,才更新textview,跟的初衷不一致,请教该如何解决

解决方案 »

  1.   

    用另一个线程,在onclick的时候调用发送消息,消息处理里设置TextView显示,并且调用查询函数
      

  2.   

    Toast我只用过最简单的应用,就是让他显示一下,就过去,请问能控制它的显示时间吗,比如我在click按钮的时候让他show,在click里面的事件处理完之后,才让他消失
      

  3.   

    主线程都卡了,界面上所有东西都不会有更新。
    而且还会出现所谓的NAR错误。必须开线程来做耗时工作。
      

  4.   

    试一下setOnTouchListener,if(event.getAction() == MotionEvent.ACTION_DOWN)

    // TextView更新 
    }
    else if(event.getAction() == MotionEvent.ACTION_UP)
    {
    //执行
    }
      

  5.   

    Toast可以设置显示时间长短,Toast.LENGTH_LONG,应该足够了
    参考这里