gpt4 book ai didi

android - 在 ListView 项目按钮单击时需要有关 AsyncTask 的帮助

转载 作者:行者123 更新时间:2023-11-29 14:55:40 25 4
gpt4 key购买 nike

我需要一些有关在我的应用程序中进行线程化的帮助。我有一个具有 ListView 的 Activity 。每个 ListView 项都有一个按钮和一个 TextView 。我想让每个按钮单击都在其自己的线程中运行,并在其行上更新相应的 textview 控件。

我是一名初学者 android 开发人员,希望对此提供一些意见。我试图植入一个 AsyncTask 子类,但无法弄清楚如何为每个按钮执行此操作并让它更新 TextView 。

谢谢!

最佳答案

每次对项目执行单击 时,您都必须调用同一AsyncTask 的新实例。

    OnItemClickListener itemListener = new OnItemClickListener() {

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

view 和 position 是构造函数的一部分,因为您想更新项目,这就是 view 的用途,而 position 是根据 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);
}
}

HTH.

关于android - 在 ListView 项目按钮单击时需要有关 AsyncTask 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7462011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com