Ich habe eine ListView
, die eine SwipeRefreshLayout
implementiert hat. Was ich versuche zu tun ist, aktualisieren Sie die ListView
, wenn der Benutzer nach unten wischt. Ich habe versucht, nach verschiedenen Optionen zu suchen, aber leider kann ich keine Lösung finden.Aktualisierung Listview auf Fragment
Wäre es besser, die Fragment
oder die onCreate
Funktion neu zu laden?
Hier ist mein Code
public class NewsTab extends Fragment implements OnRefreshListener{
final LinkedList<News> listnews = new LinkedList<News>();
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.news_tab, container, false);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh_layout);
swipeRefreshLayout.setOnRefreshListener(this);
newslist = (ListView) view.findViewById(R.id.displaynews);
populatelist(listnews);
adapter = new CustomAdapter(getActivity(),listnews);
newslist.setAdapter(adapter);
return view;
}
public void onRefresh() {
swipeRefreshLayout.setRefreshing(true);
new StartNewsLoad().execute("");
}
private class StartNewsLoad extends AsyncTask<String, Void, String> {
//ProgressDialog pd = null;
protected String doInBackground(String... params) {
reloadNews();
loadTopNews();
//NewsTab.listnews = new LinkedList<News>();
return null;
}
protected void onPostExecute(String result) {
adapter = new CustomAdapter(getActivity(),listnews);
adapter.notifyDataSetChanged();
swipeRefreshLayout.setRefreshing(false);
}
}
/// ANTWORT
ich die Antwort gefunden! Ich fügte die folgende Codezeile in meinen Kostümadapter ein und nannte sie außerhalb als adapter.refresh();
public void refresh(LinkedList<News> newsList)
{
this.results = newsList;
notifyDataSetChanged();
}
Vielen Dank für Ihre Hilfe!
Sie müssen den Adapter auf dem ListView setzen, bevor Sie ihn benachrichtigen –
Davon abgesehen, woher kommt 'listnews'? Bitte zeigen Sie eine [mcve] –
@ cricket_007 danke für Ihre Antwort listnews ist eine globale verknüpfte Liste, die ich erstellt habe, dass meine News-Klasse enthält siehe oben Bearbeiten – paul590