我一直试图解决这个问题一段时间了,我已经看了很多问题,但仍然无效。
我有MainActivity
SlideMenu
,所有项目都打开Fragment
。其中一个Fragments
扩展为ListFragment
。我要做的是,一旦ListItem
被选中,另一个Fragment
被调用并显示一些数据......现在只是一个标题。
选择ListItem
后,我正在创建新Fragment
的实例,将数据保存在Bundle
中并调用新的Fragment
进行显示。
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// do something with the data
Article a = articleList.get(position);
Fragment articleFragment = new ArticleFragment();
Bundle args = new Bundle();
args.putString("title", a.title);
articleFragment.setArguments(args);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.frame_container, articleFragment);
transaction.commit();
}
新onCreateView
的{{1}}尝试使用Fragment
数据设置TextView
的文字。
Bundle's
布局xmls是这两个文件:
activity_article_fragment.xml
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_pages, container, false);
TextView titleTextView = (TextView) rootView.findViewById(R.id.article_title);
String title = getArguments().getString("title");
titleTextView.setText(title);
return rootView;
}
fragment_article.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="info.androidhive.slidingmenu.ArticleFragment"
tools:ignore="MergeRootFrame" />
我尝试过尽可能多的建议...使用<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="info.androidhive.slidingmenu.ArticleFragment$PlaceholderFragment" >
<TextView
android:id="@+android:id/article_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
从xml(accessing textview within a fragment in activity,Android : How do I update my textView in a Fragment获取ID)但它仍然是View
虽然调试所有内容工作正常但在尝试设置null
的文本TextView
时显然会停止。
更新
按照Karakuri的建议做了......正在显示文字,但看起来像这样: