Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取有关按钮的信息单击第一个活动并在第三个活动中使用安卓_Java_Android_Xml_Button_Android Activity - Fatal编程技术网

Java 如何获取有关按钮的信息单击第一个活动并在第三个活动中使用安卓

Java 如何获取有关按钮的信息单击第一个活动并在第三个活动中使用安卓,java,android,xml,button,android-activity,Java,Android,Xml,Button,Android Activity,有三种活动,分别是Act1、Act2和Act3 在Act1中有三个按钮,分别是But1、But2和But3 如果我们单击三个按钮中的任何一个,它将显示Act2 在Act2中,只有一个按钮说Done 我的问题是,当我在Act2中单击按钮Done时,我应该获得有关在Act1中单击的按钮的信息,以在文本视图中显示Act2 我想我已经讲清楚了 我只需要知道如何将点击按钮的信息传递到Act1到Act3 我应该使用捆绑包还是其他什么?请帮我解释一下逻辑,如果可能的话,请提供一个示例代码?:) 您有几个选择

有三种活动,分别是Act1Act2Act3

Act1中有三个按钮,分别是But1But2But3

如果我们单击三个按钮中的任何一个,它将显示Act2

Act2中,只有一个按钮说Done

我的问题是,当我在Act2中单击按钮Done时,我应该获得有关在Act1中单击的按钮的信息,以在文本视图中显示Act2

我想我已经讲清楚了

我只需要知道如何将点击按钮的信息传递到Act1Act3


我应该使用捆绑包还是其他什么?请帮我解释一下逻辑,如果可能的话,请提供一个示例代码?:)

您有几个选择

1) 核心选项是创建数据库并保存/查询信息

2) 您也可以写信给SharedReferences。

3) 正如在评论中提到的,如果你只是从一个活动到另一个活动,你可以只使用intent.putExtra(“key”,value)

4) 最后,您可以扩展
这是一篇关于全局变量的好文章

您有几个选择

1) 核心选项是创建数据库并保存/查询信息

2) 您也可以写信给SharedReferences。

3) 正如在评论中提到的,如果你只是从一个活动到另一个活动,你可以只使用intent.putExtra(“key”,value)

4) 最后,您可以扩展
这是一篇关于全局变量的好文章

您可以使用
SharedReferences
存储按下的按钮

   SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
                Editor prefsEditor = appSharedPrefs.edit();

    Button b1 = (Button) findViewById(R.id.button1);
    b1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                prefsEditor.putString("buttonPressed", "Button1");
                prefsEditor.commit();

                }
            });

    Button b2 = (Button) findViewById(R.id.button2);
    b2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                prefsEditor.putString("buttonPressed", "Button2");
                prefsEditor.commit();

                }
            });

    Button b3 = (Button) findViewById(R.id.button3);
    b3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                prefsEditor.putString("buttonPressed", "Button3");
                prefsEditor.commit();

                }
            });
在要获取按下哪个按钮的
活动中:

SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
String whichButton = appSharedPrefs.getString("buttonPressed", "");
if(whichButton.equals("Button1")
 //do something
if(whichButton.equals("Button2")
 //do something
if(whichButton.equals("Button3")
 //do something

您可以使用
SharedReferences
存储按下的按钮

   SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
                Editor prefsEditor = appSharedPrefs.edit();

    Button b1 = (Button) findViewById(R.id.button1);
    b1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                prefsEditor.putString("buttonPressed", "Button1");
                prefsEditor.commit();

                }
            });

    Button b2 = (Button) findViewById(R.id.button2);
    b2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                prefsEditor.putString("buttonPressed", "Button2");
                prefsEditor.commit();

                }
            });

    Button b3 = (Button) findViewById(R.id.button3);
    b3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                prefsEditor.putString("buttonPressed", "Button3");
                prefsEditor.commit();

                }
            });
在要获取按下哪个按钮的
活动中:

SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
String whichButton = appSharedPrefs.getString("buttonPressed", "");
if(whichButton.equals("Button1")
 //do something
if(whichButton.equals("Button2")
 //do something
if(whichButton.equals("Button3")
 //do something
尝试使用意图

        public void onClick(View arg0) {
                Bundle bundle = new Bundle();
                bundle.putInt("BtnAID", ID);
                Intent It = new Intent();
                It.setClass(A.this, B.class);
                It.putExtras(bundle);
                startActivity(It);
               }
尝试使用意图

        public void onClick(View arg0) {
                Bundle bundle = new Bundle();
                bundle.putInt("BtnAID", ID);
                Intent It = new Intent();
                It.setClass(A.this, B.class);
                It.putExtras(bundle);
                startActivity(It);
               }

我认为在意图中传递int是这里最简单的选择。我认为在意图中传递int是这里最简单的选择。非常感谢:)哪一个更好?使用数据库或SharedRef??最近不得不做类似的事情,我发现选项3是最简单的实现方法。只需记住在启动Act2和Act3Well的意图中添加这些值。取决于您存储的信息类型。sharedPref更简单。如果只是设置不会有太大变化的信息,就应该使用它。但是如果有很多信息总是在变化(在你的情况下,我不这么认为),那么DB更好。没问题。如果它对你有效,请接受答案:)哪一个更好?使用数据库或SharedRef??最近不得不做类似的事情,我发现选项3是最简单的实现方法。只需记住在启动Act2和Act3Well的意图中添加这些值。取决于您存储的信息类型。sharedPref更简单。如果只是设置不会有太大变化的信息,就应该使用它。但是如果有很多信息总是在变化(在你的情况下,我不这么认为),那么DB更好。没问题。如果你觉得合适,请接受答案