我有以下内容:
</LinearLayout>
<LinearLayout
android:id="@+id/layout8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_height="wrap_content"
android:layout_width="110dp"
android:layout_weight="1"
android:text="@string/button1"/>
<Button
android:layout_height="wrap_content"
android:layout_width="110dp"
android:layout_weight="1"
android:text="@string/button2"
android:onClick="clickButton"/>
活性1:
public void clickButton(View v) {
Button btn = (Button)v;
String buttonText = btn.getText().toString();
Intent intent = new Intent(MainActivity.this, PickChar2.class);
intent.putExtra("button2", buttonText);
startActivity(intent);
}
活动2:
Bundle extras = getIntent().getExtras();
if (extras != null) {
String foo = extras.getString("button1"); // how do i accept any button?
TextView textView = (TextView) findViewById(R.id.header);
有没有办法让getString首先接受任何按钮,然后我做一个if语句来查看用户点击了哪些按钮并采取相应的行动?我希望用户能够按下button1,或button2,或3,4等...
我遇到的问题是,第一个布局中有30个按钮,我不想制作30个意图和30个extra.getStrings。我希望做的是: - 用户1按1按钮 - 活动1将该按钮传递给活动2 - 活动2检查按下了哪个按钮 - 做点什么
按钮处于不同的活动中。我使用了一个意图将活动1中的按钮传递给此活动。
答案 0 :(得分:0)
如果您为每种Button
使用相同的侦听器(我建议在这种情况下使用),您可以根据Button
点击
public void onClick(View v) {
Button btn = (Button)v; // v is the Button that was clicked so cast it to a Button
String buttonText = btn.getText().toString(); // and get its text here
Intent intent = new Intent(MainActivity.this, activity2.class);
intent.putExtra("button1", buttonText); // then send it on its way
startActivity(intent);
现在,在您的下一个Activity
中,您将获得所点击的Button
的文字
你想要这个
要使用一个侦听器,您可以为每个android:onClick="functionName"
设置Button
,然后在第一个Activity
中使用该功能。所以就像
public void functionName(View v)
{
Button btn = (Button)v; // v is the Button that was clicked so cast it to a Button
String buttonText = btn.getText().toString(); // and get its text here
Intent intent = new Intent(MainActivity.this, activity2.class);
intent.putExtra("button1", buttonText); // then send it on its way
startActivity(intent);
}
或者你可以通过初始化每个Button
Button btn1 = (Button) findViewById(R.id.someId);
...
然后为每个
设置onClickListener
btn1.setOnClickListener(this);
并像我的第一个例子一样使用onClick()
函数。但是,您还必须记住实施OnClickListener
public class MyActivity extends Activity implements OnClickListener{
在这种情况下,我建议在xml中进行,因为它基本上是复制/粘贴,你有一个功能而不必设置监听器