【问题标题】:Onclick listener within asynctask onPostExecuteasynctask onPostExecute 中的 Onclick 侦听器
【发布时间】:2014-08-01 17:25:29
【问题描述】:

我必须将一项活动调用到另一项活动。第一个活动使用 Asynctask 调用 Web 服务,响应保存在 JSONObject 中。

只有在 web 服务执行后有点击时才应该调用第二个活动。

是否可以在 Asynctask 的 onPostExecute 中使用 OnCLickListener?我是 Android 新手,感谢您的帮助!

【问题讨论】:

  • 是的,为什么不呢? mView.setOnClickListener(...);在这里问之前为什么不试试呢?
  • 是的,您可以在异步任务的 postexecute() 上创建 onclicklistener

标签: android android-asynctask onclicklistener


【解决方案1】:

我想我明白了,所以你可以让你的按钮不可见,当 Asynctask 完成时,让它可见。这是可能的代码:

@Override
protected void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_information_places);
   View button = (View)findViewById(R.id.idbutton);
   butoon.setOnClickListener(this);
}
.
.
.
yourAsyncTask{
   @Override
   protected Boolean doInBackground(Void... params){
      yourbutton.setVisibility(View.INVISIBLE);
   }
   .
   .
   .
   @Override
   public void onPostExecute(Boolean result){
      yourbutton.setVisibility(View.VISIBLE);
   }
}

【讨论】:

    【解决方案2】:

    根据android设计模式的异步任务

    • 所有 UI 线程都必须在 onPostExecute 上完成, onPreEsecute , onProgressUpdate

    • 由于onPostExecute 在 UI 线程上运行,我猜你可以执行 buttononClick那里


    详细信息检查 - ANDROID DEVELOPER SITE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2013-02-13
      • 2012-11-09
      相关资源
      最近更新 更多