2011-01-25 4 views
0
내가 모든 자바 확인되는 OnClickListener를 추가 아니에요 만약 내가 목록보기 을 건 드리면 난 그냥 어떤 행동을 미리 형성 할 행운 간단한 응용 프로그램을 만들려고

메신저 :OnClickListener를이 텍스트 뷰와 충돌을 couses

 ListView myListView = (ListView)findViewById(R.id.listViewOptions); 
    final ArrayList<String> optionsArray = new ArrayList<String>(); 



    final ArrayAdapter<String> arrayAdapter; 


    arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,optionsArray); 

    for(int i =1 ; i < 3 ; i++) 
    { 
     optionsArray.add("1"); 
     arrayAdapter.notifyDataSetChanged(); 
    } 

    myListView.setAdapter(arrayAdapter); 
    myListView.setClickable(true); 
    myListView.setFocusable(true); 


    OnClickListener onClickListener = new OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 
}; 

myListView.setOnClickListener(onClickListener); 

XML :

<ListView android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:layout_weight="1" 
android:id="@+id/listViewOptions" 
android:clickable="true"> 
</ListView> 

감사

로그 :

다음 볼 것 있도록
E/AndroidRuntime( 232): Caused by: java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead 
E/AndroidRuntime( 232): at android.widget.AdapterView.setOnClickListener(AdapterView.java:750) 
E/AndroidRuntime( 232): at com.resume.Resume.onCreate(Resume.java:52) 
E/AndroidRuntime( 232): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 
E/AndroidRuntime( 232): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364) 
E/AndroidRuntime( 232): ... 11 more 
I/Process ( 52): Sending signal. PID: 232 SIG: 3 
I/dalvikvm( 232): threadid=7: reacting to signal 3 
E/dalvikvm( 232): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 
W/ActivityManager( 52): Launch timeout has expired, giving up wake lock! 
W/ActivityManager( 52): Activity idle timeout for HistoryRecord{439114c0 com.resume/.Resume} 
+1

예외의 원인을 알려주십시오. LogCat을보십시오. – Jems

+1

또한 notifyDataSetChanged()를 여러 번 호출 할 이유가 없습니다. 먼저 optionsArray를 채우고, 그 다음에 ArrayAdapter를 할당하십시오. – kcoppock

답변

4

당신은 당신이했던 ... 로그 캣 출력을보고 배울 필요가 :

E/AndroidRuntime(4280): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.rjh.TestProj/org.rjh.TestProj.MainActivity}: 
java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead 
E/AndroidRuntime(4280):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
E/AndroidRuntime(4280):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
E/AndroidRuntime(4280):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
E/AndroidRuntime(4280):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
E/AndroidRuntime(4280):  at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(4280):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(4280):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
... 

가 말했듯이, 문제는 당신 반면 OnClickListener을 사용하는 것입니다 OnItemClickListener을 사용해야합니다.

+0

병이 시도 내가 그 문제 – Yaniv

+0

myListView.setOnItemClickListener (새 OnItemClickListener() { \t \t \t 공공 무효 onItemClick (어댑터 뷰 AdapterView 는 arg0,보기 ARG1, INT의 ARG2, \t \t \t \t \t 생각 ... onItemClickListener를 사용하는 긴에서 arg3) { \t \t \t \t \t \t \t \t \t \t,321 0} \t \t}); – Yaniv

+0

위의 해답은 – Yaniv

관련 문제