我在 Android 中遇到了一个奇怪的“问题”或者可能是一个“错误”。我经常将 ClipboardManager 用于我的应用程序。但是如果我在几秒钟内使用它两次,我总是会得到一个 NullPointerException。我认为我在访问剪贴板时尚未填充剪贴板,但这似乎是一个非常愚蠢的想法......有没有人遇到过同样的问题,或者我做错了什么?我在 String text = item.getText().toString(); 得到错误
错误信息:
java.lang.NullPointerException:尝试在 at.co.netconsulting.leotranslater.SettingsActivity$1$3.onPrimaryClipChanged 的空对象引用上调用接口方法“java.lang.String java.lang.CharSequence.toString()”
感谢您提前提供的每一个提示或帮助!
这是我的一段代码:
final ClipboardManager myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
myClipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
ClipData cp = myClipboard.getPrimaryClip();
if(cp.getItemCount()>0) {
ClipData.Item item = cp.getItemAt(0);
if (item == null) {
Toast.makeText(getApplicationContext(), "Item is null", Toast.LENGTH_LONG).show();
} else {
if(item!=null) {
String text = item.getText().toString();
Toast.makeText(getApplicationContext(), "Sie suchen nach dem Wort: " + text, Toast.LENGTH_LONG).show();
Intent msgIntent = new Intent(SettingsActivity.this, ServiceTranslator.class);
msgIntent.putExtra("ClipBoardData", text);
startService(msgIntent);
}
}
}
}
});
}