我開始使用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