**界面间的数据传输 **
1.数据随着页面跳转过程传输到第二个页面
1.1数据从第一个页面传到第二个页面
我们用bundle将数据封装,通过Intenr,调用它的putExtra()方法传输
我们这里使用的跳转方法是之前博客讲的第一种方法
代码如下
public voID tosecond(VIEw v){ Intent intent = new Intent(); EditText name_e = (EditText)findVIEwByID(R.ID.editText1); EditText password_e = (EditText)findVIEwByID(R.ID.editText2); String name = name_e.getText().toString(); String password = password_e.getText().toString(); //使用bundle将姓名和密码进行封装 Bundle bundle = new Bundle(); bundle.putString("name", name); bundle.putString("password", password); //利用Intent进行传输 intent.putExtras(bundle); intent.setClass(MainActivity.this, Second.class); startActivity(intent);}
当然如果只想传输单个数据可以不用bundle,直接使用Intent的putExtra(“name”,name),进行传输。
1.2第二个页面接收第一个页面传世的数据
在Oncreate函数中添加下列代码
Bundle bundle = intent.getExtras();String name = bundle.getString("name");String password = bundle.getString("password");
当然这些代码也可以在绑定函数中实现
2.数据从第二个页面回传到之前的界面
实现这个功能主要有两步
第一步
在第二个界面的java文件中的自定义一个函数添加下列代码
Intent intent = new Intent();intent.putExtra("reuslt", "你已经登陆");setResult(2,intent);finish();
我们利用setResult进行数据的回传,返回到第一个界面。
第二步
在第一个界面的java文件中将startActivity(intent)改成startActivityForResult(intent, 1)
然后定义一个函数protected voID onActivityResult(int requestCode, int resultCode, Intent data)
代码如下
protected voID onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == 2) { String result = data.getStringExtra("reuslt");// Toast.makeText(getApplicationContext(), result, 2).show(); TextVIEw textVIEw = (TextVIEw)findVIEwByID(R.ID.textVIEw1); textVIEw.setText(result); }}
说明
关于这个函数的三个参数的来源
1.第一个是第一个页面跳转第二个界面的startActivityForResult(intent, 1)传输的第二个参数
2.第二个和第三个参数是第二个页面回传第一个页面的setResult(2,intent);的参数。
如果回传数据很多,可以利用setResult回传不同的参数进行区分。
效果如下
1.实现第一个界面的跳转以及数据的传递
2.实现第二个界面的数据接收和回传数据
3.实现第一个界面的接受数据 总结
以上是内存溢出为你收集整理的[android] 界面间的数据传输全部内容,希望文章能够帮你解决[android] 界面间的数据传输所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)