如何在Android中将一个Activity的值传递给另一个Activity?
我用AutuCompleteTextView [ACTV]和button创build了一个Activity。 我在ACTV中input一些文字,然后按下button。 我按下button后,我希望活动转到另一个活动。 在第二个活动中,我只想将在ACTV(第一个活动)中input的文本显示为TextView。
我知道如何开始第二个活动,如下所示:
Intent i = new Intent(this, ActivityTwo.class); startActivity(i);
我已经编码,以获得从ACTVinput的文字。
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete); CharSequence getrec=textView.getText();
我的问题是如何从第一个活动传递“getrec”(按下button之后)到第二个活动。 后来在第二个活动中收到“getrec”。
请假定我已经使用“onClick(View v)”为button创build了事件处理程序类
您可以使用Bundle在Android中执行相同的操作
创build意图:
Intent i = new Intent(this, ActivityTwo.class); AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete); String getrec=textView.getText().toString(); //Create the bundle Bundle bundle = new Bundle(); //Add your data to bundle bundle.putString(“stuff”, getrec); //Add the bundle to the intent i.putExtras(bundle); //Fire that second activity startActivity(i);
现在在第二个活动中从包中检索数据:
//Get the bundle Bundle bundle = getIntent().getExtras(); //Extract the data… String stuff = bundle.getString(“stuff”);
将数据从一个活动传递到另一个活动的标准方式:
如果你想从一个活动发送大量的数据到另一个活动,那么你可以把数据放在一个包中,然后使用putExtra()
方法传递它。
//Create the `intent` Intent i = new Intent(this, ActivityTwo.class); String one="xxxxxxxxxxxxxxx"; String two="xxxxxxxxxxxxxxxxxxxxx"; //Create the bundle Bundle bundle = new Bundle(); //Add your data to bundle bundle.putString(“ONE”, one); bundle.putString(“TWO”, two); //Add the bundle to the intent i.putExtras(bundle); //Fire that second activity startActivity(i);
否则可以直接使用putExtra()
来发送数据,使用getExtra()
来获取数据。
Intent i=new Intent(this, ActivityTwo.class); i.putExtra("One",one); i.putExtra("Two",two); startActivity(i);
这很简单,使用Intent.putExtra将数据传递给您开始的活动。 然后使用Bundle.getExtra来检索它。
以这种方式实施
String i="hi"; Intent i = new Intent(this, ActivityTwo.class); //Create the bundle Bundle b = new Bundle(); //Add your data to bundle b.putString(“stuff”, i); i.putExtras(b); startActivity(i);
开始第二个activity
,在这个class
内部使用Bundle值来使用这个代码
Bundle bundle = getIntent().getExtras(); String text= bundle.getString("stuff");
我知道这是迟到了,但如果variables需要跨多个意图访问和修改,最简单的方法是使用单例方式。 定义一个全局variables,所有的意图都可以访问。
- Datepicker:如何在点击edittext时popupdatepicker
- 错误:任务':ProjectName:mergeDebugResources'的执行失败。 >嘎吱嘎吱的Cruncher *一些文件*失败,看到日志
- 如何在安装时启动android服务
- 为什么我的three.js场景中的焦点仍然集中在相机的视angular,但只在Chrome的Android?
- 无法parsing目标'android-XX'
- jar子不匹配! 修复你的FacebookSDK的依赖关系
- 如何重置Android Studio
- 通过调用findViewById方法找不到TextView
- Android谷歌地图,如何让每个标记InfoWindow打开不同的Activity?