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; }