タブを持つアンドロイドアプリケーションを作っています。私のタブの一つでは、断片(例:断片3)から活動に移っています。これは正常に動作しています。完了後のこのアクティビティは、フラグメント2のような目的のタブに来なければなりません。これが今直面している問題です。私は初心者のように、多くの文書を通った後、私は1つのものを見つけましたが、依然として望ましいアイデアは得られませんでした。リンクは以下の通りである:タブのアクティビティからフラグメントへの基本的な移行を理解する
Transactions form fragment to activity
私MainActivity.javaは、タブが含まれていて、私は、各タブの断片をしました。今私がしなければならないのはです。私はFragment GroupEditFragment.javaからAddAdminActivity.javaという名前の別のアクティビティに行きます。これは問題なく動作します。 AddAdminActivity.javaの終了後、ボタンがあります。このボタンは、MainActivity.javaのタブ内の、AddFragment.javaという名前のフラグメントに戻る必要があります。私は前のページに来る方法を知っているので、この作業を実行する方法を知らない。
case androd.R.id.home
finish();
return true;
しかし、これは私が望むものではありません。 AddFragment.javaという別のフラグメントに戻ってみたい。
これは、私はあなたを与えることができフローチャートである:
はMainActivity.javaはタブがあります - >このタブGroupEditFragment.javaから - MainActivity.javaタブで> AddAdminActivity.java-> AddFragment.java再び
は、これは私がAddFragment.java
1. AddAdminActivity.java
に来てほしいところから私のコードです2.AddFragment.javaはこのようなものです:これは私がAddAdminActivity.java
3.GroupEditFragment.java
に行くよどこからフラグメントがあるpublic class AddFragment extends Fragment {
private ImageButton imageButton;
private GridView gridView;
ArrayList<File> list = new ArrayList<>();
public AddFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_add, container, false);
imageButton = (ImageButton) view.findViewById(R.id.gotoButton);
gridView = (GridView) view.findViewById(R.id.grid_view);
videoReader(Environment.getExternalStorageDirectory());
gridView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
gridView.setAdapter(new ImageAdapter(getContext()));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
//for making the button visible as ssonas the item gets selected
imageButton.setVisibility(view.VISIBLE);
}
});
return view;
}
public class GroupEditFragment extends Fragment {
private Button addButton;
public GroupEditFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_group_edit, container, false);
addButton = (Button) view.findViewById(R.id.addGroup);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getContext(),AddAdminActivity.class);
startActivity(intent);
}
});
return view;
} }
編集: 私はフラグメントに移動するよどこから私の活動で、この中でやった同じ問題達成するため:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(AddAdminActivity.this,MainActivity.class);
intent.putExtra("change",1);
startActivity(intent);
}
});
をこれが同じのための私のMainActivity.javaです:
1.MainActivity。 Javaの
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager simpleViewPager;
private static final int PERMISSION_REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_main);
simpleViewPager = (ViewPager) findViewById(R.id.simpleViewPager);
tabLayout = (TabLayout) findViewById(R.id.simpleTabLayout);
final TabLayout.Tab firstTab = tabLayout.newTab();
firstTab.setIcon(R.drawable.home);
tabLayout.addTab(firstTab, true);
final TabLayout.Tab seconTab = tabLayout.newTab();
seconTab.setIcon(R.drawable.plus);
tabLayout.addTab(seconTab, true);
final TabLayout.Tab thirdTab = tabLayout.newTab();
thirdTab.setIcon(R.drawable.videocall);
tabLayout.addTab(thirdTab, true);
final TabLayout.Tab fourthTab = tabLayout.newTab();
fourthTab.setIcon(R.drawable.downloads);
tabLayout.addTab(fourthTab, true);
final TabLayout.Tab fifthTab = tabLayout.newTab();
fifthTab.setIcon(R.drawable.groupwhite);
tabLayout.addTab(fifthTab, true);
final TabLayout.Tab sixthTab = tabLayout.newTab();
sixthTab.setIcon(R.drawable.addshoppingcart);
tabLayout.addTab(sixthTab, true);
final MyPagerAdapter myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager(),
tabLayout.getTabCount());
simpleViewPager.setAdapter(myPagerAdapter);
int change = getIntent().getIntExtra("change",0);
if(change==1){
tabLayout.getTabAt(0).getIcon().clearColorFilter();
tabLayout.getTabAt(1).getIcon().setColorFilter(Color.parseColor("#00E676"), PorterDuff.Mode.SRC_IN);
simpleViewPager.setCurrentItem(1);
}
//for color code changing with the tabs
tabLayout.getTabAt(0).getIcon().setColorFilter(Color.parseColor("#00E676"), PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(1).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(2).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(3).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(4).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(5).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
simpleViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(tabListener);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
}
設定アダプタの後、私は言及してきた私の条件は同じフラグメントに戻ります。しかし、私の最初のポジションアイコンには色が残ります。しかし、私のtabIndicatorはそれにあります。 2番目のもの。 if条件でもいくつか変更を加えましたが、問題は解決しません。
私はこれを行っていますが、Imはカラー変更タブの問題に直面しています。最初のタブは着色されており、フラグメントに来るときに選択したタブの色は変わりません。ありがとう – Alok
MainActivityと同じときにタブをどのように選択しているのか色分けするかは、setAlectivityResult(setSlected(position))のように行う必要があります。必要なタブを選択して前の選択を削除します – Aditi
うーん、私はそれをどのようにしているかを示します。私はそれをやっているが、結果を得ていないから。私の編集を参照してください。 – Alok