2013-11-16 2 views
1

У меня проблема. Он дает сообщение об ошибке «Вы должны указать идентификатор ресурса для TextView». Где проблема, спасибо.Необходимо указать идентификатор ресурса для ошибки TextView

SoundList класс;

public class SoundList extends ListActivity { 

int [] soundfile; 
MediaPlayer mediaPlayer; 
final Activity act = this; 

public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    this.setContentView(R.layout.list_item); 
    soundfile= new int[] {R.raw.sound1,R.raw.sound2}; 

    String[] newsounds = getResources().getStringArray(R.array.newsounds);   
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, android.R.id.list, newsounds)); 
    ListView lv = getListView(); 

    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) {  

      Intent intent = new Intent(getApplicationContext(), SingleListItem.class); 
      intent.putExtra("position", position); 
      startActivity(intent);  
     } 
    }); 

    LinearLayout layout = (LinearLayout)findViewById(R.id.reklam); 
    AdView adView = new AdView(this, AdSize.BANNER, "...."); 
    layout.addView(adView); 
    AdRequest request = new AdRequest(); 
    //request.setTesting(true); 
    adView.loadAd(request); 

} 

макет List_item.xml

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

<ListView 
android:id="@android:id/list" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:padding="10dip" 
android:textSize="18dip" 
android:textStyle="bold" > 
</ListView> 

<LinearLayout 
    android:id="@+id/reklam" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 
</LinearLayout> 
</LinearLayout> 

Ошибка журнала;

11-17 01:43:34.110: E/ArrayAdapter(5118): You must supply a resource ID for a TextView 
11-17 01:43:34.150: E/AndroidRuntime(5118): FATAL EXCEPTION: main 
11-17 01:43:34.150: E/AndroidRuntime(5118): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:386) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.AbsListView.obtainView(AbsListView.java:2040) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1244) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.ListView.onMeasure(ListView.java:1155) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.View.measure(View.java:12881) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4802) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1385) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:676) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:557) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.View.measure(View.java:12881) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4802) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:297) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.View.measure(View.java:12881) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4802) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1385) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:676) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at a android.widget.LinearLayout.onMeasure(LinearLayout.java:557) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.View.measure(View.java:12881) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4802) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:297) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2111) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.View.measure(View.java:12881) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.os.Looper.loop(Looper.java:137) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.app.ActivityThread.main(ActivityThread.java:4441) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at java.lang.reflect.Method.invoke(Method.java:511) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at dalvik.system.NativeStart.main(Native Method) 
11-17 01:43:34.150: E/AndroidRuntime(5118): Caused by: java.lang.ClassCastException: android.widget.ListView cannot be cast to android.widget.TextView 
11-17 01:43:34.150: E/AndroidRuntime(5118):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:382) 
11-17 01:43:34.150: E/AndroidRuntime(5118):  ... 32 more 
+0

У вас даже нет текстового поля в коде? – Broak

+0

Да, я не использую –

+0

Oh! вы не сделали listitem ... – Broak

ответ

5

Это должно быть так ::

list_item.xml

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

    <TextView 
     android:id="@+id/label" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@+id/label" 
     android:textSize="20px" > 
    </TextView> 

</LinearLayout> 

В вашей основной код: R.id.lable является идентификатор TextView вы мы должны иметь в списке list_item.

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     R.layout.list_item.xml, R.id.label, values); 
    setListAdapter(adapter); 

Ваш чудовищно делать это неправильно, я рекомендовал бы взглянуть на некоторые учебники:

сделать новый файл XML называется

list_layout.xml:

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

<ListView 
android:id="@android:id/list" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:padding="10dip" 
android:textSize="18dip" 
android:textStyle="bold" > 
</ListView> 

<LinearLayout 
    android:id="@+id/reklam" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 
</LinearLayout> 
</LinearLayout> 

отпуск другой материал, каким он был, а затем он должен быть:

setContentView(R.layout.list_layout); 
+0

Я изменил, но он дает другую ошибку «В вашем контенте должен быть ListView, чей атрибут id« android.R.id.list »; at com.zilsesleri.SoundList.onCreate (SoundList.java:32) this.setContentView (R.layout.list_item); –

+0

отредактированный ответ, перечитать – Broak

Смежные вопросы