了解从活动到标签中的基本转换
我正在制作一个具有选项卡的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替换当前片段。
我已经做到了这一点,但我面临的颜色变化选项卡的问题,第一个选项卡保持着色,并且它不会更改选定选项卡的颜色来到片段。谢谢 – Alok
根据您在MainActivity中选择选项卡或着色它们的方式,应该在onActivityResult(如setSlected(position))中完成相同的操作。这将选择所需的选项卡并删除先前的选择 – Aditi
好吧,我想要做eidts和告诉你我该怎么做。因为我很努力但没有得到结果。请参阅我的编辑。 – Alok