gpt4 book ai didi

java - Android 异步任务中的返回列表

转载 作者:行者123 更新时间:2023-12-02 03:46:38 25 4
gpt4 key购买 nike

我想返回我的列表 jours使用asynctask所以它可以add我的值 list

查看我的 fragment :

ProgressDialog progressDialog = new ProgressDialog(getActivity());
RecyclerView rv = (RecyclerView) root.findViewById(R.id.recyclerView);
rv.setLayoutManager(new LinearLayoutManager(getContext()));
jours = new ArrayList<>();
MaTask task = new MaTask(button,progressDialog,jours);
task.execute();
adapter = new MyAdapter(jours);
rv.setAdapter(adapter);

和我的异步任务:

public class MaTask extends AsyncTask<Void, Void, List<Cours>> {
ProgressDialog dialog ;
Button button;
List<Cours> jours ;
public MaTask(Button b,ProgressDialog progressBar,List<Cours> laliste)
{

dialog=progressBar;
button=b;
jours=laliste;

}
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog.setMessage("Chargement en Cours");
dialog.show();

}
@Override
protected List<Cours> doInBackground(Void... params) {
try
{
Document doc = Jsoup.connect("http://terry.gonguet.com/cal/?g=tp11").get();
Elements days = doc.select("div.day");
Elements event = doc.select("div.event");
for(Element day : days)
{

String jour = day.getElementsByClass("dayDate").first().html();
System.out.println(" : " + jour);
for(Element ev : event)
{

Element title = ev.select("div[class=title]").first();
Element salle = ev.select("div[class=location]").first();
Element wat = ev.select("div[class=whoat]").first();
Element starthour = ev.select("div.bub.right.top").first();
Element endhour = ev.select("div.bub.right.bottom").first();
//System.out.println(" Titre :" + title.text() + " Debut heure : " + starthour.text() + " heure fin : " + endhour.text());
Cours lecours = new Cours(starthour.text(),title.text());

jours.add(lecours);




}

Collections.sort(jours);


}
}
catch (IOException ex)
{

}
return jours;


}




@Override
protected void onPostExecute(List<Cours> laliste) {

if(dialog.isShowing())
{
dialog.dismiss();
}
for (Cours c : laliste)
{
System.out.println(c.toString());
}


}
}

但是当我这样做时,我的列表中没有任何变化。

最佳答案

您需要通知RecyclerView下划线列表已更改。您可以通过调用 notifyDataSetChanged() 方法来完成此操作。

这是一个例子:

@Override
protected void onPostExecute(List<Cours> laliste) {
....
rv.notifyDataSetChanged();
}

关于java - Android 异步任务中的返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239277/

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