0

我想根据单击的另一个布局中的哪个按钮来获取文本(我有按钮 1 和按钮 2) 我不能执行 if 子句语句,因为它无法识别按钮。

4

6 回答 6

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(); 取回它

于 2013-11-01T15:55:37.203 回答
2
  1. 如果您有一个ActivityA(有按钮),ActivityB 并且您从 A 开始 B:
    您可以在启动 B 时使用捆绑在 A 处传递您的选择:

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

    onCreate并通过 B 的方法获得该值:

    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");
    
于 2013-11-01T17:23:34.570 回答
1

如果您只需要获取单击 activity1 的按钮即可进入 activity2,我建议您执行以下操作:将 Activity1 作为当前活动,将 Activity2 作为调用活动。

  1. 在 Activity2 中声明
    public static final String EXTRA_IS_BUTTON_ONE = "isButtonOne"。使用常量值可以保证使用相同的字符串,从而使您的代码更具可读性并减少错误空间。此外,根据Android 性能指南节省一些周期

  2. 在活动 1-> 中创建一个新的 Intent 以转移到活动 2
    Intent intent = new Intent(Activity1.this,Activity2.class);

  3. create boolean 是一个按钮,用于声明单击了哪个按钮(button1 clicked --> true, button2 clicked --> false)->
    intent.putExtra(Activity2.EXTRA_IS_BUTTON_ONE,isButtonOne);

  4. 在 Activity2 中接收意图并获取布尔值 ->
    boolean isButtonOne = getIntent().getBooleanExtra(EXTRA_IS_BUTTON_ONE,false);
    (如果您没有将额外内容传递给活动,则默认情况为 false)。

  5. 在 Activity2 中,您可以使用布尔值来决定要使用的文本

希望我有所帮助,如果有不清楚的地方,请随时提出问题。

于 2013-11-01T16:11:58.030 回答
0

使用这个。它指的是片段,但对于活动也是如此。基本上,您在一个活动中创建一个接口并在另一个活动中调用它。就如此容易。

于 2013-11-01T15:41:58.900 回答
0

简单来说:

使用startActivityForResult方法。

在明确的解释中:

A 为结果启动 B。

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

A 收到结果。

有关更详细的解释甚至示例代码片段,请参阅Android Developers,它提供了一个非常好的示例。

于 2013-11-01T15:44:16.240 回答
0

您不能偏离路线执行 if 子句,但您可以做的是在单击活动时使用 Intent 并将某个布尔值放入 Intent 额外。

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

主要思想是意图是你要走的路。

于 2013-11-01T15:44:35.683 回答