我有一个Fragment
,里面有一个ListView
。现在我使用AsyncTask
在doInBackGround()
的帮助下从互联网上获取一些数据。现在,我想在ArrayAdapter
onPostExecute()
的帮助下将该数据设置为Fragment
内的ListView。如何在ListView
内的Fragment
内添加数据?
这会产生问题,因为我的Fragment
没有Context
。
package com.example.the_hindu_news;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
public class Async_list extends AsyncTask<Context, Integer, String> {
private Internet_list ob_il;
private String[] news;
private String[] link;
ListView ls;
Base_class ob_bc;
public Async_list(ListView ls, Base_class ob_bc) {
this.ls = ls;
this.ob_bc = ob_bc;
}
/**
* {@inheritDoc}
*/
@Override
protected String doInBackground(Context... params) {
try {
ob_il = new Internet_list();
ob_il.parser();
ob_il.parse_VIA_pull_parser();
news = ob_il.return_news();
link = ob_il.return_links();
} catch (final Exception err) {
Log.i("doInBackGround() : " + err.toString(), "tushar");
}
return null;
}
/**
* {@inheritDoc}
*/
@Override
protected void onPostExecute(String result) {
try {
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(ob_bc,
android.R.layout.simple_list_item_1, news);
ls.setAdapter(adapter);
} catch (final Exception err) {
Log.i("onPostExecute() : " + err.toString(), "tushar");
}
}
}
答案 0 :(得分:0)
为示例定义一个接口:
interface NetworkListener <T>{
public void updateData(List<T>);
}
您的片段实现此界面并更新您的列表。为AsyncTask提供接口。