知道从上一个活动中点击了哪个按钮

时间:2014-02-10 22:46:10

标签: java android android-activity

我在一个活动上有三个按钮_每个按钮点击它时启动activity_B,但我的问题是如何知道哪个按钮启动了活动_B?

更新:

           btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferences prefs = PreferenceManager
                        .getDefaultSharedPreferences(LastDaysActivity.this);
                prefs.edit().putString("Date1", btn1.getText().toString()).apply();


                Intent i = new Intent(LastDaysActivity.this, TabHostActivityLastDays.class);
                i.putExtra("button", "1");
                startActivity(i);



            }
        });

活动B:

        Toast.makeText(BatteryActivityLastDays.this, String.valueOf(my.getLastDaysValues(result1, 10)), Toast.LENGTH_SHORT).show();

    String intent = this.getIntent().getStringExtra("button");
    if (intent != null)
    {

        Toast.makeText(BatteryActivityLastDays.this , intent , Toast.LENGTH_SHORT).show();
    }

2 个答案:

答案 0 :(得分:1)

可能有很多方法可以做到这一点,但最简单的方法就是发送extra Intent

在发送类似的内容时,

Intent i = new Intent(..., ...);  // obviously replace ... with the class and context
i.putExtra("button", "btn1");
startActivity(i);

并在接收课程

Intent intent = getIntent();
if (intent != null)
{
    String clicked = intent.getStringExtra("button");
}

您也可以使用SharedPreferences,但根据您的需要,这可能有点过分。

Intent Docs

答案 1 :(得分:0)

使用Intent附加功能。例如:

在onClick方法中:

Intent activityBIntent = new Intent(ActivityA.this, ActivityB.class);
activityBIntent.putExtra("button_clicked", 1);
startActivity(activityBIntent);

和activityB的onCreate方法:

Intent intent = getIntent();
if (intent != null){
    int buttonId = intent.getIntExtra("button_clicked", 0);
}