1.在Application中獲取ClipboardManager
public class MyApplication extends Application{
private static Application mApp;
private static ClipboardManager mClipboardManager;
@Override
public void onCreate() {
super.onCreate();
mApp = this;
}
public static ClipboardManager getClipboardManager(){
if (mClipboardManager == null) {
mClipboardManager = (ClipboardManager) mApp.getSystemService(Context.CLIPBOARD_SERVICE);
}
return mClipboardManager;
}
}
2.在工具類中添加彈出複製的Dialog
public class Utils {
public static void showCopyDialog(Context context , final String content){
new AlertDialog.Builder(context)
.setTitle("選項")
.setItems(new String[]{"複製"}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyApplication.getClipboardManager().setText(content);
dialog.dismiss();
}
}).show();
}
}
3.將TextView的內容複製到EditText中
public class MainActivity extends Activity implements OnClickListener{
private TextView mTextView;
private EditText mEditText;
private MyApplication mApp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mApp = (MyApplication) getApplicationContext();
initViews();
registerListener();
}
private void registerListener() {
mTextView.setOnClickListener(this);
}
private void initViews() {
mTextView = (TextView) findViewById(R.id.textView1);
mEditText = (EditText) findViewById(R.id.editText1);
}
@Override
public void onClick(View v) {
mTextView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Utils.showCopyDialog(MainActivity.this, mTextView.getText().toString());
}
});
}
}
4.測試一下