행 (목록 항목)에 대한 사용자 정의 레이아웃이있는 ListView가 있고 목록에 평소와 같이 어댑터가 채워집니다. 이 사용자 정의 레이아웃에서 ImageView 및 TextView를 추가 했으므로 텍스트와 일치하는 아이콘이 있습니다. 나는 ListView에서 위치를 기반으로 ImageView를 얻을 수 없다. (텍스트를 분명히 표시 할 수 있도록 아이콘을 설정할 필요가있다.) 오류 로그에서 얻을 수있는 유일한 실제 정보는 오류가있는 행이다. 그러나 나는 그것을 어떻게해서든지 게시 할 것이다. 어떤 도움이라도 대단히 감사합니다. ListView를 제거하고, RelativeLayouts을 만들고, LinearLayout에 포함시키고, Scrollview 내부에 넣는 등의 혼란을 피하고 싶습니다.Android : ListView 행 레이아웃을 만드는 데 사용되는 ViewGroup에서보기
관련 코드 : -
ListView listView = (ListView) findViewById(R.id.servicelist);
String[] values = new String[] { "Choice0", "Choice1", "Choice2",
"Choice3", "Choice4", "Choice5" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.services_row,
android.R.id.text1, values);
listView.setAdapter(adapter);
for(int position=0; position<11; position++){
ViewGroup rowView = (ViewGroup) listView.getChildAt(position);
ImageView icon = (ImageView) rowView.findViewById(R.id.service_row_icon); //ERROR HERE
switch(position){
case 0:{ icon.setImageResource(R.drawable.ic_launcher); break; }
case 1:{ icon.setImageResource(R.drawable.ic_launcher); break; }
//ETC ETC More cases go here, irrelevant code
}
}
행 레이아웃 (service_row.xml) : -
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/service_row_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:paddingLeft="5dp"
android:paddingRight="5dp"/>
<TextView
android:id="@+id/service_row_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#33b5e5"
android:paddingLeft="5dp"/>
</LinearLayout>
오류 로그 : -
06-28 01:46:31.581: E/AndroidRuntime(18070): FATAL EXCEPTION: main
06-28 01:46:31.581: E/AndroidRuntime(18070): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dragonheart.autodroid/com.dragonheart.autodroid.ServiceClasses.AddServiceActivity}: java.lang.NullPointerException
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.ActivityThread.access$600(ActivityThread.java:127)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.os.Handler.dispatchMessage(Handler.java:99)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.os.Looper.loop(Looper.java:137)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.ActivityThread.main(ActivityThread.java:4507)
06-28 01:46:31.581: E/AndroidRuntime(18070): at java.lang.reflect.Method.invokeNative(Native Method)
06-28 01:46:31.581: E/AndroidRuntime(18070): at java.lang.reflect.Method.invoke(Method.java:511)
06-28 01:46:31.581: E/AndroidRuntime(18070): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
06-28 01:46:31.581: E/AndroidRuntime(18070): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
06-28 01:46:31.581: E/AndroidRuntime(18070): at dalvik.system.NativeStart.main(Native Method)
06-28 01:46:31.581: E/AndroidRuntime(18070): Caused by: java.lang.NullPointerException
06-28 01:46:31.581: E/AndroidRuntime(18070): at com.dragonheart.autodroid.ServiceClasses.AddServiceActivity.onCreate(AddServiceActivity.java:43)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.Activity.performCreate(Activity.java:4465)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
06-28 01:46:31.581: E/AndroidRuntime(18070): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
06-28 01:46:31.581: E/AndroidRuntime(18070): ... 11 more
앱이 다운 될 때마다 ** 전체 logcat 추적을 게시해야합니다. – Sam
미안 해요, 내 마음을 미끄러 뜨 렸습니다. 저에게 상기시켜 주셔서 감사합니다 ^^ –
:'ImageView icon = (ImageView) rowView.findViewById (R.id.service_row_icon);'line 40? – Sam