我的应用程序包含两项活动,目标是在Android 4或更高版本上运行。 活动1 显示Webview,活动2 包含Listview和EditText。
按下按钮后,我想以编程方式将活动1 的Webview中复制的任何文本发送/导出到活动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:
答案 0 :(得分: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);
}
答案 1 :(得分: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);
}