編輯:關於Android編程
package com.example.androidtest;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import android.app.Activity;
import android.text.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.util.Base64;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView)findViewById(R.id.mytv);
}
public void onclick(View view){
MyData data = new MyData("xi","23");
String base64code = "";
try {
//編碼加密
ByteArrayOutputStream bytearray = new ByteArrayOutputStream();
ObjectOutputStream objectout = new ObjectOutputStream(bytearray);
objectout.writeObject(data);
base64code = Base64.encodeToString(bytearray.toByteArray(), Base64.DEFAULT);
objectout.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ClipboardManager clip = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
clip.setText(base64code);
getclip();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void getclip(){
ClipboardManager clip = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
String msg = clip.getText().toString();
MyData mydata = null;
//解碼
byte[] bytearray = Base64.decode(msg, Base64.DEFAULT);
ByteArrayInputStream byteinput = new ByteArrayInputStream(bytearray);
try {
ObjectInputStream out = new ObjectInputStream(byteinput);
mydata = (MyData)out.readObject();
} catch (Exception e) {
// TODO: handle exception
}
tv.setText(mydata.toString());
}
}MyData類
package com.example.androidtest;
import java.io.Serializable;
public class MyData implements Serializable {
private String name;
private String age;
public MyData(String n,String age){
this.name = n;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "name:"+name + " age:"+age;
}
}
易錯點:
剪切板導入的類是android.text.ClipboardManager;不是android.content.ClipboardManager;
Android實現Banner界面廣告圖片循環輪播(包括實現手動滑動循環)
前言:經常會看到有一些app的banner界面可以實現循環播放多個廣告圖片和手動滑動循環。本以為單純的ViewPager就可以實現這些功能。但是蛋疼的事情來了
android開發筆記之自定義開關按鈕
今天來講講自定義單個控件,就拿開關按鈕來講講,相信大家見了非常多這樣的了,先看看效果:我們可以看到一個很常見的開關按鈕,那就來分析分析。首先:這是由兩張圖片構成:①一張為
Android內存洩漏查找和解決
一.內存洩漏概念1.什麼是內存洩漏?用動態存儲分配函數動態開辟的空間,在使用完畢後未釋放,結果導致一直占據該內存單元。直到程序結束。即所謂的內存洩漏。其實說白了就是該內存
Android中自定義進度條詳解
Android原生控件只有橫向進度條一種,而且沒法變換樣式,比如原生rom的樣子很丑是吧,當偉大的產品設計要求更換前背景,甚至縱向,甚至圓弧狀的,咋辦,比如:ok,我們開