在listview项目按钮单击上需要有关AsyncTask的帮助

Joe*_*ker 1 multithreading android listview textview

我的应用程序中需要一些线程帮助.我有一个有listview的活动.每个listview项目都有一个按钮和一个textview.我希望每个按钮单击在其自己的线程中运行并更新其行上的相应的textview控件.

我是一个初学Android开发人员,并希望对此有一些意见.我曾尝试过一个AsyncTask子类,但是无法弄清楚如何为每个按钮执行它并让它更新textview.

谢谢!

Yas*_*mar 6

AsyncTask每次执行click项目时,都必须调用相同的新实例.

    OnItemClickListener itemListener = new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
    long arg3) {
            asyncTaskName newTask = new AsyncTaskName(view , position);
            newTask.execute();
     }
   }
Run Code Online (Sandbox Code Playgroud)

视图和位置是构造函数的一部分,因为您希望更新项目,即视图的用途,并且位置是根据asyncTask中的位置执行独特的操作.

在你的asyncTask中,你可能需要类似于我在下面所做的事情.

 private class asyncTaskName extends AsyncTask<Void, Void, Void> {
        private View mView;
        private int mPosition;

      public asyncTaskName(View view, int position){
          mView = view;
          mPosition = position;
      }


     protected void doInBackground(Void... urls) {
         // do something you have to here based on mPosition.
         return null;
     }

     protected void onPostExecute(Void result) {
         // now update the textView here
         TextView tv = (TextView) mView.findViewById(yourTextViewId);
         // now you have reference to tv, probably update the text by
         tv.setText(yourString);
     }
 }
Run Code Online (Sandbox Code Playgroud)

HTH.