Android开发两个activity之间传值的方法
这篇文章主要介绍“Android开发两个安卓activity之间传值的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android开发两个activity之间传值的方法”文章能帮助大家解决问题二次开发。
使用Inten的putExtra传递
第一个Activity中
//创建意图对象 Intent intent = new Intent(this,MainActivity2.class); //设置传递键值android对 intent.putExtra("name","花花"); //激活意图 startActivity(intent);
第二个Activity中
// 获取模式意图对象 Intent intent = getIntent(); //获取传递的值框架 String name= intent.AndroidgetStringExtra("name"); //设置值 tv.setText(name);
使用Intention的Bundle传递
第一个Activity中
Intent intent=new Intent(MainActivity.手机模式之间this,MainActivity2.class); Bundle bundle=new Bundle(); bundle.putInt("id",2); bundle.putString("name",ss); intent.putExtra("bundle",bundle); startActivity(intent);
第二个Activity中
Intent intent=getIntent(); Bundle bundle=intent.传值getBundleExtra("bundle"); final int id = bundle.getInt("id"); final String name = bundle.getString("name"); tv.setText(id); tv2.setText(name);
使用Activity销毁时传递数据
第一个Activity中
Intent intent = new Intent(MainActivity.this,TwoActivity.class); //用一种特殊方式开启Activity startActivityForResult(intent, 11); //设置数据 protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String str = data.getStringExtra("data"); tvOne.setText(str); }
第二个Activity中
//设置返回的安卓数据 Intent intent = new Intent(); intent.手机putExtra("data", edtOne.getText().toString().trim()); setResult(3, intent); //关闭项目当前activity finish();
SharedPreferences传递数据
第一个Activity中
SharedPreferences sp=getSharedPreferences("com.example.data4",0); final SharedPreferences.Editor edit = sp.edit(); edit.putString("name",ss); edit.putString("id","8"); edit.apply(); Intent intent=new Intent(MainActivity.this,MainActivity2.class); startActivity(intent);
第二个Activity中
SharedPreferences sp=getSharedPreferences("com.example.data4",0); sp.getString("name",""); tv1.setText(sp.getString("id","")); tv2.setText(sp.getString("name",""));
使用序列化手机对象Seriazable
工具类
import java.io.Serializable; class DataBean implements Serializable { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
第一个Activity中
//创建意图合并 Intent intent = new Intent(MainActivity.this,TwoActivity.class); DataBean bean = new DataBean(); //通过set方法把数据保存到DataBean对象中 bean.setName("啦啦"); bean.setSex("男"); intent.putExtra("key", bean); startActivity(intent);
第二个Activity中
Intent intent = getIntent(); //反序列化三种数据对象 Serializable se = intent.getSerializableExtra("key"); if(se instanceof DataBean){ //获取开发工具到携带数据的DataBean对象db DataBean db = (DataBean) se; tv.setText(db.getName()+三种"==="+db.getSex()); }
使用静态变量传递数据两个
第一个Activity中
Intent intent = new Intent(MainActivity.this,安卓二次开发,TwoActivity.class); TwoActivity.name="花花"; TwoActivity.str="在做什么"; startActivity(intent);
第二个Activity中
//静态功能变量Android protected static String name; protected static String str; tv.setText(str+name);
handler
第一个Activity中
//点击跳转第二个功能页面 bt1.androidsetOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MainActivity.this,MainActivity2.class); startActivity(intent); } }); //创建一个handler,处理信息 @SuppressLint("HandlerLeak") public static Handler mhandler=new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); switch (msg.what){ case 1: Log.e("ddddddd","Dddddddd"); break; } } };
第二个Activity中
//点击按钮,Android开发,返回框架合并第一个activity btt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { handler=MainActivity.mhandler; Message message=new Message(); message.what=1; handler.sendMessage(message); } });
//点击按钮,10秒后 ,返回第一个activity btt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //开一个子线程 new Thread(new Runnable() { @Override public void run() { try { //10秒之后发送二次开发 Thread.sleep(10000); handler=MainActivity.mhandler; Message message=new Message(); message.what=1; handler.sendMessage(message); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } });
//点击按钮,每10秒 ,返回第一个安卓activity一次(循环一次),一共返回10次 btt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new Thread(new Runnable() { @Override public void run() { int i=0; do { try { Thread.sleep(10000); handler=MainActivity.mhandler; Message message=new Message(); message.what=1; handler.sendMessage(message); i++; } catch (InterruptedException e) { e.printStackTrace(); } }while (i<10); } }).start(); } });
关于“Android开发框架两个activity之间传值的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注蜗牛博客行业资讯频道,小编每天都会为大家更新不同的知识点。
免责之间声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不Android代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,android两个项目功能合并,一经查实,将立刻删除涉嫌侵权内容。版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论