【问题标题】:Clipboard Manager Activity Not Working in Android剪贴板管理器活动在 Android 中不起作用
【发布时间】:2014-08-30 07:57:41
【问题描述】:

我有简单的 剪贴板管理器 Activity,它将数据从 EditText 复制并粘贴到下一个 EditText 框,但 Activity 没有启动

我的MainActivity如下:

package com.example.clipboarddemo;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

private ClipboardManager mClipboardManager;
private ClipData myClip;
private EditText copyField,pasteField;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mClipboardManager=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
    copyField=(EditText)findViewById(R.id.editText1);
    pasteField=(EditText)findViewById(R.id.editText2);

}

@SuppressLint("NewApi")
public void copy(View view){
    String text=copyField.getText().toString();
    myClip=ClipData.newPlainText("text", text);
    mClipboardManager.setPrimaryClip(myClip);
    Toast.makeText(getApplicationContext(), "Text Copied",Toast.LENGTH_SHORT).show();

}

@SuppressLint("NewApi")
public void paste(View view){
    ClipData abc=mClipboardManager.getPrimaryClip();
    ClipData.Item item=abc.getItemAt(0);
    String text=item.getText().toString();
    pasteField.setText(text);
    Toast.makeText(getApplicationContext(),"Text Pasted",Toast.LENGTH_SHORT).show();
}

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

AndroidManifest.xml文件是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.clipboarddemo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

我已阅读以下创建此类的教程:

Tutorials Point

Logcat报错如下:

    08-30 16:09:23.810: E/AndroidRuntime(296): FATAL EXCEPTION: main
08-30 16:09:23.810: E/AndroidRuntime(296): java.lang.NoClassDefFoundError: android.content.ClipboardManager
08-30 16:09:23.810: E/AndroidRuntime(296):  at com.example.clipboarddemo.MainActivity.onCreate(MainActivity.java:26)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.os.Handler.dispatchMessage(Handler.java:99)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.os.Looper.loop(Looper.java:123)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.main(ActivityThread.java:4627)
08-30 16:09:23.810: E/AndroidRuntime(296):  at java.lang.reflect.Method.invokeNative(Native Method)
08-30 16:09:23.810: E/AndroidRuntime(296):  at java.lang.reflect.Method.invoke(Method.java:521)
08-30 16:09:23.810: E/AndroidRuntime(296):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-30 16:09:23.810: E/AndroidRuntime(296):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-30 16:09:23.810: E/AndroidRuntime(296):  at dalvik.system.NativeStart.main(Native Method)
08-30 16:09:23.870: W/ActivityManager(59):   Force finishing activity com.example.clipboarddemo/.MainActivity
08-30 16:09:24.862: W/ActivityManager(59): Activity pause timeout for HistoryRecord{4a2d49e0 com.example.clipboarddemo/.MainActivity}
08-30 16:09:25.060: I/ActivityManager(59): Displayed activity com.android.launcher/com.android.launcher2.Launcher: 44069 ms (total 44069 ms)
08-30 16:09:35.673: W/ActivityManager(59): Activity destroy timeout for HistoryRecord{4a2d49e0 com.example.clipboarddemo/.MainActivity}
08-30 16:10:53.140: D/KeyguardViewMediator(59): pokeWakelock(5000)
08-30 16:10:53.320: D/KeyguardViewMediator(59): pokeWakelock(5000)
08-30 16:10:53.690: W/WindowManager(59): No window to dispatch pointer action 1
08-30 16:10:54.370: I/ARMAssembler(59): generated scanline__00000077:03515104_00000000_00000000 [ 33 ipp] (47 ins) at [0x577a10:0x577acc] in 602296 ns
08-30 16:10:56.640: I/Process(296): Sending signal. PID: 296 SIG: 9
08-30 16:10:56.660: I/ActivityManager(59): Process com.example.clipboarddemo (pid 296) has died.
08-30 16:10:57.070: I/ARMAssembler(59): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x577ad0:0x577c98] in 866708 ns

【问题讨论】:

  • 您的意思是看不到您的活动吗?还是有例外?
  • App根本打不开
  • @hoomi ,我已经给了教程链接
  • 问题是我不是博客的编辑。我是来回答你的问题的:)。无论如何,如果应用程序根本没有打开,则意味着您的清单中有问题。你能提供你的清单文件吗?
  • 我用清单更新了问题

标签: android clipboardmanager


【解决方案1】:

由于android.content.ClipboardManager 在 Android 3.0.x 及更高版本上可用,因此您无法在 Android 2.2 上运行它。这就是为什么您会收到 NoClassDefFoundError 异常。

如果你想在 Android 2.3.x 及以下版本上使用 ClipBoard,我建议你使用android.text.ClipboardManager

希望对你有帮助

【讨论】:

  • 但 getPrimaryClip() 和 setPrimaryClip() 方法不适用于此导入。
  • 对于 android.text.ClipboardManager 你必须使用 setTextgetText 而不是 setPrimaryClipgetPrimaryClip
猜你喜欢
  • 1970-01-01
  • 2013-10-11
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 2022-10-13
  • 1970-01-01
相关资源
最近更新 更多