0
これは私を狂わせてしまいます。私はspinner
を使用してfragments
を切り替えようとしていますが、私の間違いがどこにあるかわかりません。 spinner
のアイテムの1つをクリックすると、それは常にのフラグメント3のコンテンツを表示します。他のアイテムは表示されません。ツールバーのスピナーを使ってフラグメントを切り替える
私は今何時間もインターネットを閲覧しましたが、私がアンドロイドプログラミングを初めて利用しているため、私の問題の解決策を見つけることができませんでした。
ありがとうございました!
MainActivity.java
// Setup spinner
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(new MyAdapter(
toolbar.getContext(),
new String[]{
"Fragment 1",
"Fragment 2",
"Fragment 3"
}));
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// When the given dropdown item is selected, show its contents in the
// container view.
switch (position) {
case 0:
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, Fragment1.newInstance()).commit();
case 1:
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, Fragment2.newInstance()).commit();
default:
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, Fragment3.newInstance()).commit();
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
Fragment1.java
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment1Fragment extends Fragment {
public static Fragment1Fragment newInstance() {
Fragment1Fragment fragment = new Fragment1Fragment();
return fragment;
}
public Fragment1Fragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_fragment1, container, false);
return rootView;
}
}
異なるリサイクルビューを異なるフラグメントに表示したいのですが、これは正しいアプローチですか? – Ron
あなたはここでトランザクションをしています...それぞれのフラグメントが何をしているのか、そのフラグメント自身のビジネスです。 – theJango