2016-01-01 3 views
0

В принципе, у меня есть кнопка в моей деятельности, которая вставляет текст из буфера обмена. Моя проблема заключается в том, что после тестирования это приложение выйдет из строя, если в буфер обмена нечего вставлять (например, в буфер обмена ничего не было скопировано). Функция вставки работает, если в буфере обмена есть что-то, поэтому я хотел бы знать, как ее обрабатывать. Я пытался справиться с подобным крахом, но это не работает для меня.Android: сбой при попытке вставить ничего

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; 
    } 
} 

Logcat:

01-01 15: 07: 56,860: Е/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: попытка вызвать виртуальный метод 'int android.content.ClipData.getItemCount()' в ссылке нулевого объекта

01-01 15: 07: 56,860: Е/AndroidRuntime (10567): в com.karimo.tester.MainForm.PasteText (MainForm.java:109)

01-01 15: 07: 56,860: E/AndroidRuntime (10567): ... 13 ...

+0

Вы должны вывести stacktrace из аварии, чтобы мы могли помочь вам помочь – codeMagic

+0

'ClipData.getItemCount()' this возвращает 'null' при нажатии кнопки. Отлаживайте свой код. –

ответ

0

Исправлено. Нужно обрабатывать cData, если оно было нулевым.

Смежные вопросы