android Acitivity之间的数据传递
来源:互联网 发布:站长工具 域名备案 编辑:程序博客网 时间:2024/05/16 17:17
安卓在不同的activity之间进行数据的传递
activity之间的四种传递数据的方法
- 使用intent 意图
- 使用全局变量
- 使用静态变量
- 使用剪切板
1、Intent意图传递数据
利用putExtra方法将数据以键值对的方式进行传递
传递
button= (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,OtherAcitivity.class); intent.putExtra("name","hello"); startActivity(intent); } });
利用getStringExtra 取出
接收
Intent intent=getIntent();String name = intent.getStringExtra("name");
2、全局变量传递数据
首先写一个存放数据的类,继承Application
package com.example.hifn123p.java;import android.app.Application;public class MyApp extends Application { public String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}
清单文件中进行声明 在application结点下 声明name
<application android:name=".MyApp" >
传递 定义一个全局变量myApp
button=(Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myApp= (MyApp) getApplication(); myApp.setName("hello"); Intent intent=new Intent(MainActivity.this,OtherAcitivity.class); startActivity(intent); } });
接收 定义一个全局变量myApp
myApp= (MyApp) getApplication(); textView.setText(myApp.getName());
3、静态变量传递数据
首先在OtherActivity中定义一个全局变量
public static String hello;
传递
button= (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,OtherAcitivity.class); OtherAcitivity.jack="hello"; startActivity(intent); } });
4、剪切板传递数据
传递 将数据放到剪切板中
button= (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ClipboardManager cliboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); String name="hello"; cliboardManager.setText(name); Intent intent=new Intent(MainActivity.this,OtherAcitivity.class); startActivity(intent); } });
接收
ClipboardManager clipboardManager= (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); String edString = clipboardManager.getText().toString();
多个Activity之间 例如 A ,B ,C;
现在我要把值通过A经过B传给C
如果用Intent的话 A-B 再在B中都取出来 然后在把值传到C
Bundle
如果在A中用了 Bundle 的话 我把Bundle传给B 在B中再转传到C C就可以直接去了
这样的话 还有一个好处 就是在B中 还可以给Bundle对象添加新的 key - value 同样可以在C中取出来
0 0
- android Acitivity之间的数据传递
- Android Acitivity之间如何传递数据
- 从acitivity之间的数据传递谈起
- Android和Acitivity之间如何传递数据消息
- 多个acitivity之间层层传递数据的处理
- 同一个Acitivity里面Frament之间的数据传递
- Acitivity 之间如何传递消息(数据)
- Acitivity之间如何传递消息(数据)
- Acitivity和Service之间消息的传递
- 浅析:Acitivity间数据的传递
- Acitivity在singleTask加载模式下的数据传递处理
- Android 数据传递(一) Activity之间的数据传递
- android activity之间数据的传递方式
- android activity之间传递数据的方式
- android activity 之间数据的传递
- android-Acitvity之间数据的传递
- Android:Activity之间的数据传递
- (Android review)Activity之间的数据传递
- Predicates 判断式
- python 根据类的字符串名实例化对象
- MessageUI.framework发短信
- 多线程两种方式对比与区别
- This is it——Halloween
- android Acitivity之间的数据传递
- tableview 下拉图片放大
- 32位和64位系统的原理
- nodejs moment and cassandra 日期存储
- Swift(四、基本运算符及高级操作符)
- 2015年母校秋季招聘会有感
- Android进程与线程基本知识
- Filter过滤器
- Linux配置Samba服务