Java 了解上一个活动中单击的按钮

Java 了解上一个活动中单击的按钮,java,android,android-activity,Java,Android,Android Activity,我在一个活动上有三个按钮,每个按钮在单击时都会启动活动,但我的问题是如何知道哪个按钮启动了活动 更新: btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { SharedPreferences prefs = PreferenceManager

我在一个活动上有三个按钮,每个按钮在单击时都会启动活动,但我的问题是如何知道哪个按钮启动了活动

更新:

           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();
    }

有很多方法可以做到这一点,但最简单的方法可能就是发送带有
意图的
额外的

在课堂上

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");
}
您也可以使用,但根据您的需要,这可能有些过分


使用意图附加功能。例如:

内部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);
}

然后我应该使用if语句,比如:if(clicked.equal(“btn1”){//do something}?是的,但是你需要使用它。你可以通过
意图
传递
字符串
int
,任何你想要的。它会显示文档中的所有方法。如果你这样做
if(“btn1.equals”(clicked)){
它可以防止出现
NPE
。请确保在
onCreate()
之前不要调用
getIntent()或者它将是
null
。非常感谢您,但您所说的:NPE
null指针异常是什么意思?
。这意味着如果
单击
null
,出于某种原因,它不会以这种方式抛出异常。另一种方式它会抛出异常。为什么它在返回“单击”时返回空toast消息但是我确信我已经点击了按钮1,类型意图中的getIntExtra(String,int)方法不适用于参数(String)