我有片段切换问题。在我的应用程序中,用户完成一个任务来完成3个片段。具体来说,我有这样的结构:
[F1] - > [F2] - > [F3]
我正在使用导航抽屉,当用户点击抽屉中的项目时,F1会被实例化。 但是,当数据插入完成时(这意味着它在F3中),用户必须单击一个按钮(它将启动AsyncTask,因为数据必须存储在数据库中),将其重定向到F1并且必须填充一个listView包含它包含在上一个片段(F2和F3)中的数据。 现在问题是:如何在F3和F1之间移动并填充F1列表?我知道这个操作必须在" onPostExecute" AsyncTask的方法,但我不明白如何恢复listView并填充它。
提前谢谢。
答案 0 :(得分:0)
使用回调将一个标志从F3传递到F1。用逗号分隔每个值,这样你就有了一个CSV字符串。
String [] seperatedList = passedStr.split(“,”);
从此字符串构建数组,然后将此数组设置为适配器数据并调用
listview.setadapter(适配器);
对不起这些回复来得晚,我一直很忙。这是在两者之间传递字符串的一种方法。
String csv = "value0,value1,value2,value";
Bundle bundle = new Bundle();
bundle.putString("YOUR_KEY", csv);
然后在你的片段onCreate call中执行你的事务并提交等等:
String csv = getArguments().getString("YOUR_KEY");
String [] seperatedValues = csv.split(",");
这是一种方式,它可以帮助你,如果你想要更多的信息,让我知道生病尽力。
答案 1 :(得分:0)
您可以使用以下方式解决此问题: 您正在使用NavigationDrawer。所以你有一个Activity,你的活动布局有这样的FrameLayout
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在@+id/frame_container
中,您正在填充像F1,F2 ...... Fn这样的碎片。
您可以使用以下方式在frameContainer中填充片段:
Fragment fragment=new F1();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
在onCreateView()之后的片段F1中,您可以检查数据库中可用的数据,这些数据必须在ListView中显示。如果可用数据,则使用适配器在listView中显示它。 现在,当您在片段F3中,在成功保存数据库数据后,您可以使用以前的代码实例化片段F1。 导航抽屉Example is Here。 使用ListView适配器Example Here。 谢谢,对不起英语不好。