1.Intent对象 android
2.静态变量 app
3.经过剪切板 ide
4.经过全局对象Application this
public class ATActivity extends Activity { spa
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取管理剪切板的对象
ClipboardManager clipbord = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 向剪切板保存字符串
clipbord.setText("数据来自剪切板"); code
// 从剪切板获取数据
ClipboardManager c = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
CharSequence text = c.getText();
Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); xml
// 经过全局对象获取
MyAppData md = (MyAppData) getApplicationContext();
String a = md.country;
int b = md.z;
System.out.println();
}
} 对象
MyAppData类 ip
public class MyAppData extends Application {
public String country = "china";
public int z = 0; 字符串
好比此时有个类Data
Data data=new Data();//在这里不须要序列化
}
在AndroidMainfest.xml配置
<application
android:name=".MyAppData"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".ATActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
// 让剪切板传递复杂数据,能够直接使用字符串传递任何二进制的数据(包括可序列化对象,图像等)
ClipboardManager c1 = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
Data clipd = new Data();//在这里须要序列化
clipd.id = 7000;
clipd.name = "经过剪切板传递数据";
// 将clipd对象转化成Base64格式的字符串
ByteArrayOutputStream baos = new ByteArrayOutputStream();
String base64Str = "";
try {
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(clipd);
// 使用Base64.encodeToString方法将byte[]数据转换成Base64字符串
base64Str = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);
oos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
c1.setText(base64Str);
ClipboardManager c2 = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
String base64StringValue = c2.getText().toString();
// 将Base64格式字符串还原成byte[]格式的数据
byte[] buffer = Base64.decode(base64StringValue, Base64.DEFAULT);
ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
try {
ObjectInputStream ois = new ObjectInputStream(bais);
// 将byte[]数据还原成Data对象
Data data = (Data) ois.readObject();
int ada = data.id;
String afa = data.name;
System.out.println();
} catch (StreamCorruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
public class Data implements Serializable { public int id; public String name; }