了解从活动到标签中的基本转换

问题描述:

我正在制作一个具有选项卡的android应用程序。在我的一个标签中,我将从片段(比如片段3)到活动。这工作正常,完成后的这个活动必须到达所需的选项卡片段2.现在,这是我现在面临的问题。在经历了大量文件后,我发现了一件事,但仍然没有得到想要的想法,因为我是一个起动器。该链接如下:了解从活动到标签中的基本转换

Transactions form fragment to activity

我MainActivity.java包含制表符,我已经为每个标签片段。现在我要做的是我要从Fragment GroupEditFragment.java到另一个名为AddAdminActivity.java的活动这对我来说很好。现在完成AddAdminActivity.java后,我有一个按钮。此按钮必须返回到名为AddFragment.java的MainActivity.java选项卡内的片段。我不知道如何执行此任务,因为我知道如何进入前一页。

case androd.R.id.home 
     finish(); 
     return true; 

但这不是我想要的。我想回到另一个名为AddFragment.java的片段。

这是一个流程图,我可以给你:

MainActivity.java有标签 - >此标签GroupEditFragment.java - > AddAdminActivity.java-> AddFragment.java在MainActivity.java标签再次

这是我想要来到AddFragment.java

1 AddAdminActivity.java

我的代码

2.AddFragment.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; 
} 

这是从哪儿我要去AddAdminActivity.java

3.GroupEditFragment.java

片段
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; 
} } 

EDITS: 为了实现同样的问题,我在这做了我的活动,从那里我移动到片段:

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是关于它的。第二个。我也做了一些改变,如果我的条件也是如此,但问题依然存在。

@Alok这就是我目前在我的应用程序中所做的。你可以调用AddAdminActivity。java使用startActivityForResult,当用户点击AddAdminActivity.java中的按钮时,您可以设置结果。之后,在MainActivity.java中的onActivityResult中,您可以使用AddFragment替换当前片段。

+0

我已经做到了这一点,但我面临的颜色变化选项卡的问题,第一个选项卡保持着色,并且它不会更改选定选项卡的颜色来到片段。谢谢 – Alok

+0

根据您在MainActivity中选择选项卡或着色它们的方式,应该在onActivityResult(如setSlected(position))中完成相同的操作。这将选择所需的选项卡并删除先前的选择 – Aditi

+0

好吧,我想要做eidts和告诉你我该怎么做。因为我很努力但没有得到结果。请参阅我的编辑。 – Alok