基本的に、アクティビティにクリップボードからテキストを貼り付けるボタンがあります。私の問題は、それをテストした後、クリップボードから貼り付けるものが何もない場合にアプリがクラッシュすることです (クリップボードに何もコピーされていない場合など)。貼り付け機能はクリップボードに何かあれば動作するので、対処法が知りたいです。この種のクラッシュを処理しようとしましたが、うまくいきません。
public void PasteText(View v)
{
TextView mainText = (TextView) findViewById(R.id.editext);
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData cData = clipboard.getPrimaryClip();
ClipData.Item item;
String text = "";
if(cData.getItemCount() > 0)
{
item = cData.getItemAt(0);
text = (String) item.getText();
mainText.append(text);
return;
}
else
{
item = null;
mainText.append(text);
return;
}
}
ログキャット:
01-01 15:07:56.860: E/AndroidRuntime(10567): java.lang.IllegalStateException: アクティビティのメソッドを実行できませんでした
01-01 15:07:56.860: E/AndroidRuntime(10567): android.view.View$1.onClick(View.java:4025) で
01-01 15:07:56.860: E/AndroidRuntime(10567): 原因: java.lang.NullPointerException: null オブジェクト参照で仮想メソッド 'int android.content.ClipData.getItemCount()' を呼び出そうとしました
01-01 15:07:56.860: E/AndroidRuntime(10567): com.karimo.tester.MainForm.PasteText(MainForm.java:109)
01-01 15:07:56.860: E/AndroidRuntime(10567): ... 13 詳細