Android 使用剪下板傳遞資料

來源:互聯網
上載者:User

標籤:

使用剪下板傳遞資料,可以傳遞簡單的資料,也可以傳遞可序列化的對象。

首先來個簡單點吧。

首先在,mainActivity.xml檔案中加入一個button按鈕

private Button button;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // TODO Auto-generated method stub                button = (Button)this.findViewById(R.id.button);                button.setOnClickListener(new View.OnClickListener() {                                        @SuppressLint("NewApi")                    @Override                    public void onClick(View v) {                        // TODO Auto-generated method stub                                                //  第一種情況:剪下板傳遞常用類型資料//                        ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);//從android系統中調用剪下板服務//                        String name = "jack";//                        clipboardManager.setText(name);//                        Intent intent = new Intent(MainActivity.this,OtherActivity.class);//                        startActivity(intent);                                                //  第二種情況:剪下板傳遞可序列化對象                        MyData mydata = new MyData("jack","beijing");                        //把對象轉化成字串                        ByteArrayOutputStream byteArrayOutPutStream = new ByteArrayOutputStream();                        String baseString = "";                        try {                            ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutPutStream);                            objectOutputStream.writeObject(mydata);                            baseString = Base64.encodeToString(byteArrayOutPutStream.toByteArray(), Base64.DEFAULT);                            objectOutputStream.close();                        } catch (Exception e) {                            // TODO: handle exception                        }                        ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);                        clipboardManager.setText(baseString);                        Intent intent = new Intent(MainActivity.this,OtherActivity.class);                        startActivity(intent);                    }                });            }

在此之前當然需要建立一個對象了,建立MyData.java

package com.example.android_intent3;import java.io.Serializable;public class MyData implements Serializable {    private String age;    private String name;    public MyData(String age, String name) {        super();        this.age = age;        this.name = name;    }    @Override    public String toString() {        return "MyData [age=" + age + ", name=" + name + "]";    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public MyData() {        // TODO Auto-generated constructor stub    }}

當然也需要在mainActivity.xml檔案中加入一個button

 <Button        android:id="@+id/button"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="使用剪下板傳遞資料" />

還需要在建立一個布局檔案other.xml檔案加入:

<TextView android:id="@+id/msg"  android:layout_width="fill_parent"    android:layout_height="fill_parent"></TextView>

對了,還得建立OtherActivity.java檔案,加入:

private TextView textView;    public OtherActivity() {        // TODO Auto-generated constructor stub    }    @SuppressLint("NewApi")    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.other);        //第一種情況//        textView = (TextView)this.findViewById(R.id.msg);//        ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);//        String msgString = clipboardManager.getText().toString();        //textView.setText(msgString);        //第二種情況        textView = (TextView)this.findViewById(R.id.msg);        //擷取Android剪下板服務        ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);        //擷取剪下板裡的資料        String msgString = clipboardManager.getText().toString();        //解碼        byte[] base64_byte =  Base64.decode(msgString, Base64.DEFAULT);        //輸出資料        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(base64_byte);        try {            ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);            MyData mydata = (MyData)objectInputStream.readObject();            textView.setText(mydata.toString());        } catch (Exception e) {            // TODO: handle exception        }    }

最後,當然不能忘了,在資訊清單檔中加入OtherActivity.java.

 <activity android:name=".OtherActivity"></activity>

 

Android 使用剪下板傳遞資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.