2013-04-29 3 views
0

나는 초보자이다. OnLickListner에 대해 액션을 수행하는 listView 코드를 작성하고있다.하지만 "불행히도 멈추다"라는 오류 메시지가 표시된다. 다른 목록 항목을 선택할 때 다른 작업을 수행하려고합니다. 임 새로운 안드로이드 개발 그래서 온라인 기본 자습서에 다음.안드로이드 앱 - 불행히도 멈추다

내가이 스위치/케이스 구조있어

:

package com.list; 

import android.os.Bundle;  
import android.app.ListActivity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.CheckedTextView; 
import android.widget.ListView; 
import android.widget.Toast; 

public class MainActivity extends ListActivity { 

    final int Aatma = 0; //should be equal to the index in your array. 
    final int Special26 = 1; 
    final int Dabangg2 = 2; 

    String menu[] = {"Aatma","Special26","Dabangg2" }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // ListView l = (ListView)findViewById(R.id.list); 
     setListAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,menu)); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
    protected void onListItemClick(ListView l, View v, int position, long id) { 

     // super.onListItemClick(l, v, position, id); 



     CheckedTextView selectedItem = (CheckedTextView) v; 
     boolean isChecked = selectedItem.isChecked(); 
     Log.e("TAG","item clicked position = " + position + " isChecked = " + isChecked); 

     switch (position) { 
     case Aatma: 
      Toast.makeText(this, "AAtma !", Toast.LENGTH_LONG).show(); 

      break; 
     case Special26: 
      Toast.makeText(this, "Special26 !", Toast.LENGTH_LONG).show(); 

      break; 

     case Dabangg2: 
      Toast.makeText(this, "Dabangg 2 !", Toast.LENGTH_LONG).show(); 

      break; 
     default: 
      break; 
     } 

    } 

} 



Error Log- 
04-29 18:28:21.514: W/dalvikvm(782): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
04-29 18:28:21.544: E/AndroidRuntime(782): FATAL EXCEPTION: main 
04-29 18:28:21.544: E/AndroidRuntime(782): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.list/com.list.MainActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.os.Looper.loop(Looper.java:137) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.main(ActivityThread.java:5041) 
04-29 18:28:21.544: E/AndroidRuntime(782): at java.lang.reflect.Method.invokeNative(Native Method) 
04-29 18:28:21.544: E/AndroidRuntime(782): at java.lang.reflect.Method.invoke(Method.java:511) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
04-29 18:28:21.544: E/AndroidRuntime(782): at dalvik.system.NativeStart.main(Native Method) 
04-29 18:28:21.544: E/AndroidRuntime(782): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ListActivity.onContentChanged(ListActivity.java:243) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.Activity.setContentView(Activity.java:1881) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.list.MainActivity.onCreate(MainActivity.java:25) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.Activity.performCreate(Activity.java:5104) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
04-29 18:28:21.544: E/AndroidRuntime(782): ... 11 more 
+0

예외 메시지를 읽는 것이 매우 유용하다는 것이 입증되었습니다 : "귀하의 콘텐츠에는 id 속성이 'android.R.id.list'인 목록 뷰가 있어야합니다." – CodeZombie

+0

문제는 매우 명확합니다. 원인 : java.lang.RuntimeException : Your 콘텐츠에는 'android.R.id.list'라는 ID 속성을 가진 ListView가 있어야합니다. Google에서 1 분이되면 답변을 찾을 수 있습니다. – Simon

+0

가능한 복제본 [RuntimeException : 귀하의 콘텐츠를 id 속성이 'android.R.id.list'입니다 ListView가 있어야합니다 (http://stackoverflow.com/questions/3040374/runtimeexception-your-content-must-have- a-listview-his-id-attribute-is-andro) – Simon

답변

0

귀하의 레이아웃과 같이 ID android.R.id.list와 목록보기를 포함해야합니다 :

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

중요한 것입니다을 id는 http://developer.android.com/reference/android/app/ListActivity.html에서 설명한 @android : id/list입니다 ("화면 레이아웃"절 참조).

+0

ur 귀중한 회신에 대한 고맙습니다 ... – chunky8666

+0

하지만 수정 코드가있을 수 있습니다 .. 내가 listview allready에 id를 추가했습니다. – chunky8666

+0

@ + id/list는 @android : id/list와 동일하지 않습니다. android : id는 "식별자"ID의 네임 스페이스를 정의하며 루트 xml 태그에서 일반적으로 정의하는 네임 스페이스를 나타내는 안드로이드 여야합니다. xmlns : android = "http://schemas.android.com/apk/res/android " –

관련 문제