当我从一个屏幕(Activity1)点击一个按钮1时,iam显示一个另一个屏幕(调用一个Activity2),其中包含一个HeaderName和一些带有点击的UI元素事件
如果我点击button2,我想显示具有不同HeaderName的相同屏幕以及相同UI元素的不同点击事件。
我的意思是当我点击6个按钮(来自Activity1)时,我希望同一个屏幕具有不同的标题和不同的功能。
我对此很新,怎么做?
请帮助
答案 0 :(得分:2)
您可以通过各种方式实现这一目标
1.使用Fragments
在这种情况下,您不必在Activity1中单击button1时显示第二个活动。
相反,在Activity1中使用片段,其中将放置所有按钮。当您单击按钮说按钮1时,您将显示(或替换当前片段)与该按钮相关的片段,如下所示。
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack("fragment2");
transaction.commit();
这里要注意事务有addToBackStack()方法,这将有助于返回初始片段(包含所有按钮)
2.使用活动
在这种情况下,您将发送带有Activity的标志/整数值以启动第二个活动
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("option",1); // for button1 click
startActivity(intent);
在SecondActivity中,使用getExtra()获取此整数
Bundle extras = getIntent().getExtras();
int option = extras.getInt("option");
现在您有关于在Activity1中单击了哪个按钮的信息。使用此值相应地填充UI
如果您在ActionBar中使用HeaderName,则在这两种情况下都可以相应地更改ActionBar标题