gpt4 book ai didi

java - android listview doinbackground无法显示任何内容

转载 作者:行者123 更新时间:2023-12-01 16:35:56 25 4
gpt4 key购买 nike

我想做一个 ListView ,并且我有很多数据想要插入它。
所以我想使用doinbackground。
但是当我使用 doinbackground 时,我的 ListView 再也不会出现,我该怎么办?
这是我的代码:

    public class Listening extends AppCompatActivity {
ArrayList<Listenlist> listenlists = new ArrayList<Listenlist>();
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listening);
listview = (ListView) findViewById(R.id.list);
}
public void seraechsql2(){
String result = dblisten.executeQuery();
try{
JSONArray jsonArray = new JSONArray(result);
for(int i =0; i < jsonArray.length(); i++)
{
JSONObject jsonData = jsonArray.getJSONObject(i);
track=jsonData.getString("track");
Listenlist team = new Listenlist("T"+track+".mp3");
listenlists.add(team);
final ListenlistAdapter adapter = new ListenlistAdapter(this, R.layout.listenlist, listenlists);
listview.setAdapter(adapter);
}

}
catch(Exception e){}
}
class DownloadFileAsync extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... aurl) {
seraechsql2();// it can not show listview...
return null;
}

protected void onProgressUpdate(String... progress) {}
@Override
protected void onPostExecute(String unused) {}
}

}

谢谢。

最佳答案

您不应该在 doInBackground 中更新 UI,因为它是后台线程。它应该在 onPostExecute 中更新。试试这个代码:

 public class Listening extends AppCompatActivity {
ArrayList<Listenlist> listenlists = new ArrayList<Listenlist>();
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listening);
listview = (ListView) findViewById(R.id.list);
}
public void seraechsql2(){
String result = dblisten.executeQuery();
try{
JSONArray jsonArray = new JSONArray(result);
for(int i =0; i < jsonArray.length(); i++)
{
JSONObject jsonData = jsonArray.getJSONObject(i);
track=jsonData.getString("track");
Listenlist team = new Listenlist("T"+track+".mp3");
listenlists.add(team);
}

}
catch(Exception e){}
}
class DownloadFileAsync extends AsyncTask<String, String, ArrayList<Listenlist>> {

@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... aurl) {
seraechsql2();
return listenlists;
}

protected void onProgressUpdate(String... progress) {}
@Override
protected void onPostExecute(ArrayList<Listenlist> result) {
final ListenlistAdapter adapter = new ListenlistAdapter(this, R.layout.listenlist, result);
listview.setAdapter(adapter);
}
}

}

关于java - android listview doinbackground无法显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61947210/

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