2

2 つのアクティビティを含む私のアプリは、Android 4 以降で実行することをターゲットにしています。アクティビティ 1は Webview を表示し、アクティビティ 2は Listview と EditText で構成されます。

ボタンが押されると、 Activity 1の Webview でコピーされたテキストをActivity 2の EditTextにプログラムで送信/エクスポートしたいと思います。

明確にするために、私の目的は、クリップボードにコピーされたテキストを聞くためのボタンを作成することです。ボタンが押されると、アクティビティ 2 が呼び出され、クリップボード内のテキストがアクティビティ 2 の EditText (edtbox) に送信/貼り付けされます。

これまでのところ、次のコード行を適用しました。

アクティビティ 1 (ボタンのクリック時):

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
clipboard.setText("Text to copy");
clipboard.getText();

Intent i = new Intent(Activity1.this, Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("clipboard", "Android");
i.putExtras(bundle);   
startActivity(i);

アクティビティ 2 (onCreate の下):

Bundle bundle=getIntent().getExtras();
if(bundle !=null)
{
    String name=bundle.getString("clipboard");
    EditText edttxt=(EditText)findViewById(R.id.edtbox);
    edttxt.setText(name);
}

ただし、アクティビティ 2 のロードに失敗し、Eclipse がクラッシュします。アクティビティ 2 の EditText にクリップボードのテキストを送信していないと思いますが、方法がわかりません。

この問題を解決するのを手伝ってくれませんか。事前にどうもありがとうございました。

=====

更新しました:

Eclipse LogCatは次のとおりです。

4

2 に答える 2

1

なんでこんなの使えないのかわからない…

 ====>At Activity 1

 Intent i = new Intent(Activity1.this, Activity2.class);
 //Bundle bundle=new Bundle();
 //bundle.putString("clipboard", "Android");
  i.putExtras("clipboard", "Android");
  startActivity(i);


 ====>At Activity 2
EditText edttxt=(EditText)findViewById(R.id.edtbox);//place edit text declaration out side of the Bundle Extras block
Bundle bundle=getIntent().getExtras();
if(bundle !=null)
{
  String name=bundle.getString("clipboard");
  edttxt.setText(name);
}
于 2012-08-07T11:31:16.493 に答える
1

これを試してください::

アクティビティ 1 (ボタンのクリック時):

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
clipboard.setText("Text to copy");
Sting cpytext = clipboard.getText();

Intent i = new Intent(Activity1.this, Activity2.class);
//Bundle bundle=new Bundle();
//bundle.putString("clipboard", cpytext);
i.putExtra("clipboard", cpytext);   
startActivity(i);

アクティビティ 2 (onCreate の下):

if(getIntent().hasExtra("clipboard")) {
     String name = (getIntent().getStringExtra("clipboard"));
     EditText edttxt=(EditText)findViewById(R.id.edtbox);
     edttxt.setText(name);
}
于 2012-08-07T12:13:44.270 に答える