use*_*691 3 android fragment android-asynctask
我正在尝试AsyncTask在我的活动完成时更新列表片段,但我不确定我是否做错了什么.目前,我有一个按钮启动AsyncTask:
search = (Button)findViewById(R.id.search);
search.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
String productname = prodname.getText().toString().trim();
if (NetworkManager.isOnline(getApplicationContext())){
// Go to Other screen
AsyncFetcher results = new AsyncFetcher(currActivity);
String _url = "http://192.168.1.3:3000/search.json?
utf8=%E2%9C%93&q="+productname;
// progressDialog = ProgressDialog.show(
// ClassifiedsActivity.this, "", "Loading...");
results.execute(_url);
} else {
// Throw some warning saying no internet
// connection was found
}
}
});
Run Code Online (Sandbox Code Playgroud)
一旦我的执行完成,我就会在我的活动中实例化片段:
ResultFragment resultfrag = new ResultFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, resultfrag).commit();
Run Code Online (Sandbox Code Playgroud)
但是它似乎没有用列表片段替换我的内容.这是我的布局文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
yah*_*hya 12
首先替换片段就像刷新一样.是的,它会重新加载其中的每个视图和数据.但是你必须将它与你的新数据联系起来.因此,我建议您在片段中创建一个刷新方法,并将此方法发送给刷新的数据,然后通知您的适配器dataSetChanged.
要实现这一点,您需要访问当前附加的片段并调用其刷新方法.您可以使用findFragmentByTag它来实现它.
编辑:澄清一点点
当你AsyncTask完成后,你应该做这样的onPostExecute方法:
ResultFragment resultFrag = (ResultFragment) getSupportFragmentManager()
.findFragmentByTag("FragToRefresh");
if (resultFrag != null) {
resultFrag.refreshData(refreshedArray);
}
Run Code Online (Sandbox Code Playgroud)
在你的ResultFragment你需要有refreshData方法,这是这样的:
public void refreshData(ArrayList<YourObject> data) {
yourArray = new ArrayList<YourObject>(data);
yourAdapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
并且只要您的任务完成,您的列表就会刷新.
| 归档时间: |
|
| 查看次数: |
11248 次 |
| 最近记录: |