我将我的应用程序定位为使用 API 11 或更高版本。在活动 A 中,我使用以下代码行来捕获剪贴板中的文本并将其发送到活动 B(这是上一个活动)。
onCreate
:
wvContent = (WebView) findViewById(R.id.wvContent);
LinearLayout ll= (LinearLayout)findViewById(R.id.layout_view);
webkit=new Webkit(this);
wvContent.addView(webkit, 0,0);
WebviewSelectedText webkitSelectedText=new WebviewSelectedText(getApplicationContext(), webkit);
webkitSelectedText.init();
ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
以及复制的文本以触发活动 B(使用剪贴板中的文本返回上一个活动):
public class WebviewSelectedText
{
private Context context;
Webkit webkit;
private final String have_word="have_word";
public WebviewSelectedText(Context context,Webkit webkit)
{
this.context=context;
this.webkit=webkit;
}
@SuppressWarnings("deprecation")
public void init()
{
final ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setText(null);
setOnSelectTextListener(clipboardManager, webkit);
}
private void setOnSelectTextListener(@SuppressWarnings("deprecation") final ClipboardManager clipboardManager, final Webkit webkit) {
webkit.setOnSelectTextListener(new OnSelectTextListener() {
@SuppressWarnings("deprecation")
public void onSelectText() {
String text = clipboardManager.getText().toString();
text = text.toLowerCase();
//Remove all non-word elements starting and/or ending a string
String strippedInput = text.replaceAll("^\\W+|\\W+$", "");
System.out.println("Stripped string: " + strippedInput);
//receivedText = txtView.getText().toString().toLowerCase();
if(strippedInput!=null)
{
Intent intent=new Intent(context,ActivityB);
intent.putExtra(have_word, strippedInput);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
ActivityA.this.startActivity(intent);
}
}
});
}
在模拟器上一切都很好,即复制文本,然后使用剪贴板中的文本调用活动 B。
但是,在我的真实设备(HTC 和平板电脑)上,带有复制文本的活动 B 不会自动启动,直到触摸软按钮(任何按钮:返回、菜单......)。
仅供参考,这是我的布局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/layout_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical"
android:layout_weight="1">
<WebView
android:id="@+id/wvContent"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_gravity="top"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
>
<ImageButton
android:id="@+id/btnHome"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/home"
android:layout_weight="0.25"
/>
<ImageButton
android:id="@+id/btnPronounce"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/pronounce"
android:layout_weight="0.25"
/>
<ImageButton
android:id="@+id/btnShowHistory"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/history"
android:layout_weight="0.25"
/>
<ImageButton
android:id="@+id/btnAddFavourite"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/add_favourite"
android:layout_weight="0.25"
/>
</LinearLayout>
我想知道您是否可以查看我的代码并告诉我问题所在。非常感谢。