【问题标题】:Android: Same activity for different buttons, but different actionsAndroid:不同按钮的相同活动,但不同的操作
【发布时间】:2017-01-22 11:24:33
【问题描述】:

我想知道是否有任何方法可以为不同的按钮调用相同的活动,但对每个按钮执行不同的操作..
更具体地说..我有一个带有大约 10 个按钮的活动,如果我按照传统方式进行操作,每次按下按钮时,我都必须为每个按钮创建一个活动,因此,我将拥有超过 15 个 java 文件..
所以,我想知道是否有任何方法,所有按钮都显示给同一个活动(这很容易,我会“打算”显示同一个活动),但是在那个活动上,取决于我按下的按钮,做不同的操作..

例如,所有按钮都显示在 Buttons.java 上,但里面存在一个 TextView 并且每次显示另一个文本,具体取决于我按下的按钮 -> Text1(用于 Button1)、Text2(用于 Button2)、Text3 (用于 Button3)...

你有什么想法??谢谢!!

【问题讨论】:

  • 您描述的主要活动有按钮列表。单击按钮时,您将获得一个新视图(例如带有Textview 的视图),它需要是一个新的Activity 或相同的活动但不同的Fragment。要在新活动的情况下传递不同的文本,您应该使用intent.putExtra()。如果你使用Fragment,你应该使用fragment.setArguments()

标签: java android android-activity android-button


【解决方案1】:

当你想启动它时,你可以将一些信息传递给它......例如:

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getContext(), ExampleActivity.class);
                //There is no limit for number of Extras you want to pass to activity
                intent.putExtra("buttonNumber", 1);
                startActivity(intent);
            }
        });

ExampleActivity.java

public class ExampleActivity extends Activity {

int pressedButtonNumber;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_poll);
    pressedButtonNumber = getIntent().getExtras().getInt("buttonNumber");
    switch(pressedButtonNumber){
         case 1:
         //Do Something for clicking button 1 scenario
         break;
    }
}

【讨论】:

  • 非常感谢你的例子!!!第一部分,效果很好,每个按钮都将我发送到相同的活动......不幸的是,第二部分,我有两个错误..第一个在“switch(buttonNumber)”上,它说它不能解决符号' buttonNumber',另一个在 1 号上,上面写着“需要常量表达式”。你有什么想法吗?谢谢!!
  • 我找到了......你可能没看到,它不是 switch(buttonNumber) 而是 switch(pressedButtonNumber)....当我更正这个时,一切都解决了!非常感谢!!
  • @nigi 我没有在 IDE 中编写这些代码,所以我没有注意到有问题...我会更正它...欢迎您;)
猜你喜欢
  • 2019-04-13
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多