如何检查我的按钮是否在另一个活动中被点击?

时间:2013-11-01 15:36:56

标签: android

我希望根据单击的其他布局中的哪个按钮获取文本(我有按钮1和按钮2)我不能执行if子句声明,因为它无法识别按钮。

6 个答案:

答案 0 :(得分:3)

您可以将不同的设置设置为不同的值(例如,如果您单击button1使其值为1或者2)将该整数变量作为意图传递给上一个活动并使用GetExtras()来检索整数变量...现在使用IF条件来确定单击了哪个按钮

public void onClick(View view) {
int code;

switch(view.getId()){
case R.id.button1:
 code=1;
break;

case R.id.button2:
 code=2;
break;
}
    Intent i = new Intent(this, ResultActivity.class);
    i.putExtra("yourcode", code);
    startActivityForResult(i, REQUEST_CODE);
  }

现在回到旧的活动

getIntent()getExtras( “yourcode”)的toString();检索它

答案 1 :(得分:2)

  1. 如果你有Activity A(有按钮),Activity B和 你从A开始B:你可以通过A选择你的选择 在开始B时捆绑:

    Intent intent = new Intent(A.this, B.class);
    intent.putExtra("selection_of_button_at_A", selectionOfButtonAtA);
    startActivity(intent);
    

    并以B的onCreate方法获得该值:

    getIntent().getStringExtra("selection_of_button_at_A");// sample for string 
    
  2. 但如果您的B未从A开始,那么您可以存储您的选择 在SharedPreferences(当在A处完成选择时):

    SharedPreferences prefs =A.this.getSharedPreferences("com.your_app", Context.MODE_PRIVATE);
    prefs.edit().putString("selection_of_button_at_A", selectionOfButtonAtA).commit();
    

    现在,您可以在您的任意位置点击按钮的状态 应用

    SharedPreferences prefs = B.this.getSharedPreferences("com.your_app", Context.MODE_PRIVATE);
    String selectionOfButtonAtA = prefs.getString("selection_of_button_at_A");
    

答案 2 :(得分:1)

如果你只需要点击你点击activity1的按钮就可以进入activity2,我建议你这样做: 将Activity1作为当前活动,将Activity2作为调用活动。

  1. 在活动2中声明为public static final String EXTRA_IS_BUTTON_ONE = "isButtonOne"。使用常量值可以保证使用相同的String,从而使代码更具可读性,并减少错误的空间。此外,根据Android Performance Guidelines

  2. 保存一些周期
  3. 创建一个新的Intent以转移到活动1->中的activity2。
    Intent intent = new Intent(Activity1.this,Activity2.class);

  4. 创建布尔值是按钮1,用于放入意图,声明单击了哪个按钮(单击了button1 - > true,单击了button2 - > false) - >
    intent.putExtra(Activity2.EXTRA_IS_BUTTON_ONE,isButtonOne);

  5. Activity2中的
  6. 接收意图并获取布尔值 - >
    boolean isButtonOne = getIntent().getBooleanExtra(EXTRA_IS_BUTTON_ONE,false);
    (如果您未将额外费用传递给活动,则错误是默认情况。)

  7. 在Activity2中
  8. ,您可以使用布尔值来决定

  9. 的文本

    希望我能帮忙,如果有什么不清楚,请随时提问。

答案 3 :(得分:0)

使用this。它指的是片段,但它对于活动来说是一样的。 基本上,您在一个活动中创建一个接口,并在另一个活动中调用它。就这么简单。

答案 4 :(得分:0)

简单来说:

使用startActivityForResult方法。

明确解释:

A为结果启动B.

B处理点击事件并设置结果,结果将返回A。

A收到结果。

有关详细说明甚至示例代码段,请参阅Android Developers,它提供了一个很好的示例。

答案 5 :(得分:0)

你不能在off-course中做一个if子句,但你可以做的是在点击一个活动时使用Intent并在intent extra中添加一个特定的布尔值。

另一种方法是在点击按钮时从第一个活动发送广播,并从接收者的任何地方处理它。

主要的想法是意图是你的方式。