我想根据单击的另一个布局中的哪个按钮来获取文本(我有按钮 1 和按钮 2) 我不能执行 if 子句语句,因为它无法识别按钮。
6 回答
您可以将一些变量设置为不同的值(例如,如果您单击 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(); 取回它
如果您有一个
Activity
A(有按钮),Activity
B 并且您从 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
但是如果您的 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");
如果您只需要获取单击 activity1 的按钮即可进入 activity2,我建议您执行以下操作:将 Activity1 作为当前活动,将 Activity2 作为调用活动。
在 Activity2 中声明
public static final String EXTRA_IS_BUTTON_ONE = "isButtonOne"
。使用常量值可以保证使用相同的字符串,从而使您的代码更具可读性并减少错误空间。此外,根据Android 性能指南节省一些周期在活动 1-> 中创建一个新的 Intent 以转移到活动 2
Intent intent = new Intent(Activity1.this,Activity2.class);
create boolean 是一个按钮,用于声明单击了哪个按钮(button1 clicked --> true, button2 clicked --> false)->
intent.putExtra(Activity2.EXTRA_IS_BUTTON_ONE,isButtonOne);
在 Activity2 中接收意图并获取布尔值 ->
boolean isButtonOne = getIntent().getBooleanExtra(EXTRA_IS_BUTTON_ONE,false);
(如果您没有将额外内容传递给活动,则默认情况为 false)。在 Activity2 中,您可以使用布尔值来决定要使用的文本
希望我有所帮助,如果有不清楚的地方,请随时提出问题。
使用这个。它指的是片段,但对于活动也是如此。基本上,您在一个活动中创建一个接口并在另一个活动中调用它。就如此容易。
简单来说:
使用startActivityForResult
方法。
在明确的解释中:
A 为结果启动 B。
B处理点击事件并设置结果,结果将返回给A。
A 收到结果。
有关更详细的解释甚至示例代码片段,请参阅Android Developers,它提供了一个非常好的示例。
您不能偏离路线执行 if 子句,但您可以做的是在单击活动时使用 Intent 并将某个布尔值放入 Intent 额外。
另一种方法是在单击按钮时从第一个活动发送广播,并由接收器从您想要的任何地方处理它。
主要思想是意图是你要走的路。