我开始使用Fragments,并且我已经完成了API指南,但是......当然它太容易了;) 当我启动应用程序时,它崩溃了。经过一番研究,我发现这篇文章Android fragment is not working 和Stephen Wylie的回应似乎纠正了阿里的事情,但..我不明白! 我应该在哪里放置FrameLayout? “where_i_want_my_fragment”id ...它是我想要的,对吧? 最后,我应该在哪里放置Java代码?在我的活动中(通过这种方式显示2个片段)。Android碎片:错误修复说明
谢谢!
尼科
编辑:这么说吧,我想要什么设计,你会更好地了解我的想法。 我想要一个显示字符串列表的左边的列表片段,并且在右边我想要一个片段显示有关列表中选定字符串的信息。我想能够用手指移动我的应用程序的右侧(我不知道是否更好刷卡片或任何..这是相同的布局,但充满不同的数据)
好吧,我只是发布我的代码,因为我真的不明白为什么它没有做任何事情。 这是我activity_main.xml中
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:baselineAligned="false"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_frag"
android:name="main.courante.c.DateListFragment"
android:layout_width="fill_parent"
android:layout_height="match_parent" >
</FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fiche_frag"
android:name="main.courante.c.fiche_frag"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>
这是我的主要活动: 公共类MainActivity扩展活动{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DateListFragment fragment = new DateListFragment();
getFragmentManager().beginTransaction().add(R.id.list_frag, fragment).commit();
fiche_freg frag2 = new fiche_frag();
getFragmentManager().beginTransaction().add(R.id.fiche_frag,frag2).commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
这里是DateListFragment(无onCreateView,因为它是自动生成的)
public class DateListFragment extends ListFragment {
private int mposition = 1;
private String[] mListItem = new String[] {
"Lundi 9 Juilllet",
"Mardi 10 Juillet",
"Mercredi maintenant"
};
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setListAdapter(new ArrayAdapter<String>
(this.getActivity(),R.layout.frag_list_view ,mListItem));
this.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
这里是fiche_frag: public class fiche_frag延伸片段{
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.checks_matin,container,false);
}
R.layout.checks_matin独自运作良好。
我已经再次感谢您的帮助。我是Android环境的初学者,我发现很难将UI的每个概念一下子放在一起...... !!
如果您要使用活动将碎片放入您的应该从xml中删除'android:name'标记。 – Barak 2012-07-13 15:22:37
我也会在片段中使用'onActivityCreated'而不是'onCreate'。 – Barak 2012-07-13 15:30:19
指向[Fragment文档](http://developer.android.com/guide/components/fragments.html#UI)的链接可能会有所帮助。 – Barak 2012-07-13 15:33:04