一项有两项继任活动的活动

时间:2014-11-22 16:48:48

标签: android listview android-activity

在我的主要活动(应用程序的启动窗口)上,我有Button和Button_1。点击此处的用户将打开Activity_1无关紧要。两个按钮的Activity_1相同。不同的将来自Activity_1取决于单击哪个按钮必须打开Activity_2或Activity_3。

以下是该方案。

Button   -> Activity 1 -> Activity 2
Button_1 -> Activity 1 -> Activity 3

我完成了所有工作,但知道点击了哪个按钮的部分。

Button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, Menu.class);
    startActivity(intent);

}
});
Button1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, Menu.class);
    startActivity(intent);

}
});

Menu.class是包含图片和文字的列表视图。如果单击Button并打开listview,则用户可以单击项目并阅读一些信息。 如果点击Button_1,则会加载相同的列表视图,当用户点击项目时,应该打开与其他活动不同的信息。

目前,我可以成功开启Menu.class。在那里我加载了我的listview,我可以将信息传递给下一个活动,但只是一个..

如何根据此按钮存储/知道按下哪个按钮以加载适当的活动。惠特IFcase

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);

    boolean isButton = getIntet().getExtra("isButtonClicked",false);
    if(isButton)
    {
     Intent intent = new Intent(Menu.this, Information.class);

        startActivity(intent);
    }
    else
    {
     Intent intent = new Intent(Menu.this, Information1.class);

        startActivity(intent);
    }
    // Download JSON File   
    new DownloadJSONFileAsync().execute();

}

3 个答案:

答案 0 :(得分:3)

按下按钮,通过intent.putExtra()方法点击信息到菜单活动,如下所示

Button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, Menu.class);
    intent.putExtra("isButtonClicked",true);
    startActivity(intent);

}
});
Button1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, Menu.class);
    intent.putExtra("isButtonClicked",false);
    startActivity(intent);
}
});

并在菜单活动onCreate()方法上按

获取点击的按钮
 boolean isButton = getIntent().getBooleanExtra("isButtonClicked",false);

如果isButton值为true,则单击按钮。否则单击button1。然后按

开始新活动
   if(isButton)
{
 Intent intent = new Intent(Menu.this, Activity2.class);

    startActivity(intent);
}
else
{
 Intent intent = new Intent(Menu.this, Activity3.class);

    startActivity(intent);
}

答案 1 :(得分:1)

您可以轻松使用intent.putExtra("value", true); 和活动1 onCreate方法

boolean val = getIntent().getBooleanExtra("value", false);

并基于val转到活动2或3。

答案 2 :(得分:1)

您可以使用额外内容:

Bundle bundle = new Bundle();
bundle.putInt("btn", 1);

Intent menu = new Intent(this, Menu.class);
menu.putExtras(bundle);

startActivity(menu);

在另一项活动中:

@Override
public void onCreate(Bundle b){
   Bundle myBundle = getIntent().getExtras();
   if (myBundle.getInt("btn") == 1){
      // todos
   } else if (myBundle.getInt("btn") == 2){
      // todos 
   }
}