私は Fragments を使い始めており、API ガイドのように実行しましたが...もちろん簡単すぎます ;) アプリを起動するとクラッシュします。いくつかの調査の後、この投稿Android fragment is not workingが見つかりまし た。Stephen Wylie の応答は Ali の問題を修正しているようですが、.. わかりません! FrameLayout はどこに配置すればよいですか? 「where_i_want_my_fragment」ID... 欲しいものなんですよね?最後に、Javaコードをどこに置くべきですか? 私のアクティビティ(ちなみに2つのフラグメントを表示しています)。
ありがとう !
ニコ
編集:私がデザインに何を望んでいるのか、あなたがよりよく理解できると思います。左側に文字列のリストを表示するリストフラグメントが必要で、右側にはリストで選択された文字列に関する情報を表示するフラグメントが必要です。そして、アプリの右側を指の動きでスワイプできるようにしたいです(フラグメントをスワイプする方が良いかどうかはわかりません..同じレイアウトですが、異なるデータで満たされています)
なぜ何もしないのか本当にわからないので、コードを投稿するだけです。これは私の 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>
これが私の主な活動です: public class MainActivity extends Activity {
@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 extends Fragment {
@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 のすべての概念を一度に理解するのは難しいと思います... !!