2012-05-20 2 views
0

내 안드로이드 개발의 행실을 얻으려고하지만, 나는 걸렸어. ListView가 있고 임의의 항목을 채우지 않아도됩니다. 그러나 listview의 어댑터를 설정하려고 할 때 응용 프로그램 강제 종료합니다.안드로이드 애플 리케이션은 ListView 어댑터를 설정할 때 강제 종료를 유지합니다

main.xml에 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/accountList" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

    </ListView> 

</LinearLayout> 

MainActivity.java : 내가 잘못

package com.testapp; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class MainActivity extends Activity { 

    static final String[] TEXTS = new String[] {"test1","test2"}; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ListView lv = (ListView) this.findViewById(R.id.accountList); 
     lv.setAdapter(new ArrayAdapter<String>(this, R.id.accountList, TEXTS));    
    } 
} 

을 뭐하는 거지?

로그 캣 :

05-20 13:44:28.154: E/AndroidRuntime(585): FATAL EXCEPTION: main 
05-20 13:44:28.154: E/AndroidRuntime(585): android.content.res.Resources$NotFoundException: Resource ID #0x7f060000 type #0x12 is not valid 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2110) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.content.res.Resources.getLayout(Resources.java:857) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.LayoutInflater.inflate(LayoutInflater.java:394) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:371) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.AbsListView.obtainView(AbsListView.java:2033) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.ListView.measureHeightOfChildren(ListView.java:1244) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.ListView.onMeasure(ListView.java:1155) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.View.measure(View.java:12723) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.View.measure(View.java:12723) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.View.measure(View.java:12723) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.LinearLayout.measureVertical(LinearLayout.java:812) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.View.measure(View.java:12723) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
05-20 13:44:28.154: E/AndroidRuntime(585): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.View.measure(View.java:12723) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.os.Looper.loop(Looper.java:137) 
05-20 13:44:28.154: E/AndroidRuntime(585): at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-20 13:44:28.154: E/AndroidRuntime(585): at java.lang.reflect.Method.invokeNative(Native Method) 
05-20 13:44:28.154: E/AndroidRuntime(585): at java.lang.reflect.Method.invoke(Method.java:511) 
05-20 13:44:28.154: E/AndroidRuntime(585): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-20 13:44:28.154: E/AndroidRuntime(585): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-20 13:44:28.154: E/AndroidRuntime(585): at dalvik.system.NativeStart.main(Native Method) 
+0

당신은 확실 어댑터를 설정 때문에 힘은 닫습니다? – keyser

+0

어댑터 때문에 강제로 닫히지 않는다고 말하지 않았습니다. 어댑터를 설치하면 강제로 닫힙니다. –

+0

그게 사실이라면, 당신이 그것을 설정했기 때문에 강제로 닫는 것도 사실입니다. 어쩐지. – keyser

답변

1
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ListView lv = (ListView)findViewById(R.id.accountList); 
     lv.setAdapter(new ArrayAdapter<String>(this, R.id.accountList, TEXTS)); 


    } 
+0

내가 말한 것처럼 코드를 수정했지만 여전히 작동하지 않습니다. 나는 logcat을 붙이고있다 –

+0

이것은 R.layout.simple_list_item_1을 사용하는 arrayadapter의 R.id.accountList 대신 도움이되었다. –

+0

@ StirZoltán R.layout.simple_list_item_1은 android에서 제공하는 표준 레이아웃이다. 그것을 사용자 정의하려는 경우 내 대답을 참조하십시오. 적어도 나는 그것을 얻었다 :) –

0

시도가 될하기 위해 XML을 설정합니다 :

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

뿐만 아니라, 귀하의 스택 트레이스를 붙여주십시오.

0

Resources$NotFoundException을 던지고 있습니다. 즉, R.id.accountList에 문제가있을 수 있습니다. 그것을 찾을 수 없습니다. 확실하지는 않지만 어댑터가 R.layout.main을 가리켜 야한다고 생각하기 때문에 ID가있는 곳입니다.

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

하는의 당신이 파일 list_row.xml에 저장된 가정 해 봅시다 :

lv.setAdapter(new ArrayAdapter<String>(this, R.layout.main, TEXTS)); 
1

오류는 두 번째 인수는 단지 텍스트 뷰와 같은 것을 레이아웃을 기대

lv.setAdapter(new ArrayAdapter<String>(this, R.id.accountList, TEXTS)); 

라인에 귀하의 레이아웃 폴더에. 그런 다음

당신이 할 :

lv.setAdapter(new ArrayAdapter<String>(this, R.layout.list_row, TEXTS)); 
+0

왜 downvote? 내가 틀렸다면 옳은 대답은 무엇인가? –

+0

이것은 실제로 정답이었습니다. 누군가 살인을하기로 결심했습니다. – mattboy

+0

목록 높이 또는 기본 textview 스타일을 어떻게 조정합니까? – codenamezero

관련 문제