1

Begginer android programer, 사용자가 listitem을 클릭 할 때 문자열 목록에서 항목을 추가 및 제거하고 싶습니다.하지만이를 수행하려고 할 때 조작이 지원되지 않습니다. 내가하고 싶은 것을 이해하려면 다음 코드를 참조하십시오.작업이 지원되지 않습니다?

@Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 
     if(myList != null) 
     { 
      StringBuilder stringBuilder = new StringBuilder(); 
      if(myList.contains(mylist1.get(position).getPackageName())) 
      { 
       for(int i = 0; i < myList.size(); i++) 
       { 
        if(myList.get(i).equals(mylist1.get(position).getPackageName())) 
         continue; 
        if((myList.size() - 1) != i) 
         stringBuilder.append(myList.get(i)).append(separator); 
        else 
         stringBuilder.append(myList.get(i)); 
       } 
       editor.putString("mypreference", stringBuilder.toString()); 
       mylistt1.get(position).setDisabled(false); 
     //error happens in following 
       myList.remove(mylist1.get(position).getPackageName()); 
      } 
     } 
} 

가 여기에 로그 캣으로 myList가 목록의 데이터 형식이있는 경우

04-08 11:33:00.030: ERROR/AndroidRuntime(533): FATAL EXCEPTION: main 
     java.lang.UnsupportedOperationException 
     at java.util.AbstractList.remove(AbstractList.java:638) 
     at java.util.AbstractList$SimpleListIterator.remove(AbstractList.java:75) 
     at java.util.AbstractCollection.remove(AbstractCollection.java:229) 
     at com.mypackage.myActivity.onListItemClick(myActivity.java:82) 
     at android.app.ListActivity$2.onItemClick(ListActivity.java:319) 
     at android.widget.AdapterView.performItemClick(AdapterView.java:292) 
     at android.widget.AbsListView.performItemClick(AbsListView.java:1058) 
     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514) 
     at android.widget.AbsListView$1.run(AbsListView.java:3168) 
     at android.os.Handler.handleCallback(Handler.java:605) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:4340) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
     at dalvik.system.NativeStart.main(Native Method) 
+0

logcat 메시지를 넣을 수 있습니까? – Shubhayu

답변

4

, 그것은 불변이다. 당신은 그것을 변경할 수 없습니다. 따라서 당신은 연산을 지원하지 않을 것입니다. 예외입니다. 변경을 시도하기 전에 myList 데이터 유형을 ArrayList으로 변경하십시오.

+1

이 문제를 해결합니다. –

관련 문제