Вы должны указать идентификатор ресурса для ошибки TextView android

Я пробую весь этот день решить эту ошибку. Я не понимаю, почему мои логарифмические отпечатки:

  05-06 21: 45: 59.559:
 ERROR / ConversationList (9023): У нас есть
 Чаты ... 05-06 21: 45: 59.609:
 ОШИБКА / ConversationList (9023):
 UpdateList end ... 05-06 21: 45: 59.839:
 ERROR / ArrayAdapter (9023): вы должны
 Предоставить идентификатор ресурса для TextView
 05-06 21: 45: 59.839:
 DEBUG / AndroidRuntime (9023): выключение
 Вниз VM 05-06 21: 45: 59.839:
 WARN / dalvikvm (9023): threadid = 3:
 Выключение потока с неперехваченным исключением
 (Группа = 0x4000fe70) 05-06 21: 45: 59.839:
 ОШИБКА / AndroidRuntime (9023): Неоткрытый
 Обработчик: поток, выходящий из-за
 Неперехваченное исключение 05-06 21: 45: 59.879:
 ОШИБКА / AndroidRuntime (9023):
 java.lang.IllegalStateException:
 Для ArrayAdapter требуется идентификатор ресурса
 Быть TextView 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter.java:347)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.ArrayAdapter.getView (ArrayAdapter.java:323)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.AbsListView.obtainView (AbsListView.java:1269)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.ListView.makeAndAddView (ListView.java:1623)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.ListView.fillDown (ListView.java:607)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.ListView.fillFromTop (ListView.java:664)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.ListView.layoutChildren (ListView.java:1481)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.AbsListView.onLayout (AbsListView.java:1113)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.view.View.layout (View.java:6133)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.LinearLayout.setChildFrame (LinearLayout.java:1119)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.LinearLayout.layoutVertical (LinearLayout.java:998)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.LinearLayout.onLayout (LinearLayout.java:918)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.view.View.layout (View.java:6133)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.FrameLayout.onLayout (FrameLayout.java:333)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.view.View.layout (View.java:6133)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.LinearLayout.setChildFrame (LinearLayout.java:1119)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.LinearLayout.layoutVertical (LinearLayout.java:998)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.LinearLayout.onLayout (LinearLayout.java:918)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.view.View.layout (View.java:6133)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.widget.FrameLayout.onLayout (FrameLayout.java:333)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.view.View.layout (View.java:6133)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.view.ViewRoot.performTraversals (ViewRoot.java:929)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.view.ViewRoot.handleMessage (ViewRoot.java:1482)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.os.Handler.dispatchMessage (Handler.java:99)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.os.Looper.loop (Looper.java:123)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 android.app.ActivityThread.main (ActivityThread.java:3948)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 java.lang.reflect.Method.invokeNative (Native
 Метод) 05-06 21: 45: 59,879:
 ERROR / AndroidRuntime (9023): при
 java.lang.reflect.Method.invoke (Method.java:521)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:782)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:540)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): при
 dalvik.system.NativeStart.main (Native
 Метод) 05-06 21: 45: 59,879:
 ERROR / AndroidRuntime (9023): вызвано:
 java.lang.ClassCastException:
 Android.widget.LinearLayout 05-06
 21: 45: 59,879:
 ERROR / AndroidRuntime (9023): при
 android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter.java:340)
 05-06 21: 45: 59.879:
 ERROR / AndroidRuntime (9023): ... 30
 Больше 

Мой файл Java:

package fshizzle.com; import java.util.ArrayList; import android.app.ListActivity; import android.app.NotificationManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.ContextMenu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; import cz.jabbim.android.data.JabberoidDbConnector; import fshizzle.com.R; public class ConversationList extends ListActivity { // private static final String TAG = "ConversationList.class"; private static final int RESULT_CHAT = 4004; private static final int RESULT_DIRECTCHAT = 4005; private static final String TAG = "ConversationList"; private ArrayList<String> chatList = new ArrayList<String>(); private TextView tv; private String lastJid; BroadcastReceiver csr; IntentFilter f; boolean show = true; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.conversationlist); tv = (TextView)findViewById(R.id.contactList_NoConversation); csr = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { getChats(); updateList(false); } }; f = new IntentFilter(); f.addAction("cz.jabbim.android.androidim.NEW_MESSAGE"); registerForContextMenu(getListView()); } @Override public void onStart() { super.onStart(); getChats(); updateList(show); show = true; if(getIntent().getBooleanExtra("startChat", false)) { startChat(getIntent().getStringExtra("jid")); show = false; } } @Override public void onResume() { super.onResume(); cancelNotification(); registerReceiver(csr, f); } @Override public void onPause() { super.onPause(); unregisterReceiver(csr); } @Override public void onStop() { super.onStop(); } @Override protected void onListItemClick(ListView lv, View v, int pos, long id) { super.onListItemClick(lv, v, pos, id); startChat(pos); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { new MenuInflater(getApplication()).inflate(R.menu.conversationlist_context, menu); AdapterContextMenuInfo acmi = (AdapterContextMenuInfo)menuInfo; menu.setHeaderTitle("Chat with " + getJid(acmi.position)); super.onCreateContextMenu(menu, v, menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo(); switch(item.getItemId()) { case R.id.menuEnter: startChat(acmi.position); return true; case R.id.menuCloseChat: closeChat(acmi.position); return true; } return super.onContextItemSelected(item); } private int getChats() { final String[] returnColumns = { Constants.TABLE_CONVERSATION_FIELD_ID, Constants.TABLE_CONVERSATION_FIELD_CHAT, "MIN("+(Constants.TABLE_CONVERSATION_FIELD_DATE)+") as 'firstReceived'", }; SQLiteDatabase db = new JabberoidDbConnector(this).getWritableDatabase(); Cursor result = db.query(Constants.TABLE_CONVERSATION, returnColumns, null, //Constants.TABLE_CONVERSATION_FIELD_FROM + "!= 'me'", null, Constants.TABLE_CONVERSATION_FIELD_CHAT, null, "firstReceived ASC" ); int count = result.getCount(); chatList.clear(); result.moveToFirst(); while(!result.isAfterLast()) { chatList.add(result.getString(result.getColumnIndex(Constants.TABLE_CONVERSATION_FIELD_CHAT))); //chatList.add("rafa@localhost.localdomain"); result.moveToNext(); } result.close(); result = null; db.close(); return count; } private void updateList(boolean startChat) { if(chatList.size() > 0) { if(chatList.size()==1 && startChat) { startChat(0); } Log.e(TAG, "We have chats..."); tv.setVisibility(View.GONE); getListView().setVisibility(View.VISIBLE); ListAdapter adapter = new ArrayAdapter<String>( this, R.layout.conversation_item, chatList ); getListView().setAdapter(adapter); //startChat("rafa@localhost.localdomain"); // startChat(getIntent().getStringExtra("fromUser")); } else { Log.e(TAG, "We don't have chats..."); getListView().setVisibility(View.GONE); tv.setVisibility(View.VISIBLE); tv.setText(R.string.conversationList_noOpenConversation); } // close the database after usage Log.e(TAG, "UpdateList end..."); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode==RESULT_CHAT) { int chats = getChats(); if(chats==0) { finish(); } else if(chats==1) { String jid; jid = getJid(0); if(lastJid.equals(jid)) { finish(); } else { show = false; } } else { show = false; } } else if (requestCode==RESULT_DIRECTCHAT) { finish(); } } private void cancelNotification() { NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); nm.cancel(Constants.NEW_MESSAGE_NOTIFICATION); } private void startChat(int pos) { String jid = getJid(pos); lastJid = jid; finishActivity(RESULT_CHAT); Intent i = new Intent(this, Conversations.class); i.putExtra("jid", jid); startActivityForResult(i, RESULT_CHAT); setResult(RESULT_OK); finish(); } private void startChat(String jid) { finishActivity(RESULT_DIRECTCHAT); Intent i = new Intent(this, Conversations.class); i.putExtra("jid", jid); startActivityForResult(i, RESULT_DIRECTCHAT); setResult(RESULT_OK); finish(); } private void closeChat(int pos) { SQLiteDatabase db = new JabberoidDbConnector(this).getWritableDatabase(); db.delete(Constants.TABLE_CONVERSATION, Constants.TABLE_CONVERSATION_FIELD_CHAT + " = '" + getJid(pos) + "'", null); db.close(); getChats(); updateList(false); } private String getJid(int pos) { return chatList.get(pos); } // private void handleUpdateList() { // } } ` 

Ошибка здесь:

 ListAdapter adapter = new ArrayAdapter<String>( this, R.layout.conversation_item, chatList ); getListView().setAdapter(adapter); 

Ошибка при удалении.

 ListAdapter adapter = new ArrayAdapter<String>( this, R.layout.conversation_item, chatList ); getListView().setAdapter(adapter); 

Каково решение, пожалуйста?

conversation_item.xml

 <?xml version="1.0" encoding="UTF-8"?> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/conversation_item"> <TextView android:layout_height="wrap_content" android:id="@+id/conversation_item_name" android:text="Name Surname" android:textColor="#ffffff" android:textStyle="bold" android:textSize="16dip" android:layout_width="fill_parent" android:layout_marginTop="10dip" android:layout_marginBottom="10dip" android:layout_marginLeft="10dip"> </TextView> <TextView android:layout_height="wrap_content" android:id="@+id/conversation_item_date" android:layout_width="fill_parent" android:text="17.6.2010 15:30"> </TextView> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/conversation_item_message" android:text="Just some message..." android:textColor="#ffffff"> </TextView> </LinearLayout> 

Я уверен, что проблема заключается в вашем conversation_item talk_item. Документы заявляют, что вы должны предоставить ресурс одним TextView. Как выглядит этот макет?

В качестве примера, как выглядит макет simple_list_item_1, ваш должен быть очень похожим.

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center_vertical" android:paddingLeft="6dip" android:minHeight="?android:attr/listPreferredItemHeight" /> 

РЕДАКТИРОВАТЬ:

Я только что редактировал вопрос, чтобы ваш макет отображался. Ваш макет действительно неправильный, вы не можете иметь линейный макет там, если вы используете этот конструктор. Вы можете использовать другой конструктор ( ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) ) и предоставить свой собственный макет и идентификатор вашего TextView.

Имела ту же проблему, что и для изменения пользовательского адаптера:

  ListAdapter adapter = new ArrayAdapter<String>( this, R.layout.conversation_item, chatList ); getListView().setAdapter(adapter); 

чтобы:

  ListAdapter adapter = new ArrayAdapter<String>( this, R.layout.conversation_item, R.id.sometextview_from_the_layout, chatList ); getListView().setAdapter(adapter); 

Я думаю, что выбранный TextView будет использоваться для генерации rowid, что может объяснить его необходимость быть уникальным, но я пока не уверен.

Лучше использовать пользовательский адаптер всякий раз, когда необходимо указать Массив объектов в представлении пользовательского макета. См. Эту простую и красивую ссылку. Наведение списка в виде пользовательского адаптера.

Конструктор, который вы используете, предназначен для строго CheckedTextView. Проблема возникает из-за того, что вы также предоставляете линейный макет в вашем XML-файле. Наиболее простым решением является удаление линейного макета и сохранение только CheckedTextView. Ура!

Intereting Posts
Не более автономное распознавание речи? Android Связать, как установить пользовательский цвет ссылки? Ошибка MSB4185: «System.Globalization.CultureInfo» не была включена для выполнения Широковещательный приемник для пропущенного вызова в android Ошибка отображения карты Android: вам разрешено иметь только один MapView в MapActivity Google Maps Android API v2 в Китае – загрузка карты заняла около часа Как создать фильтр намерения для потоковой передачи MP3-файла? Android; Объявление edittext в классе тела (из любого метода) Как проверить вид виджета вида? Android – Исключение из памяти Andengine с пробным эффектом Карты Google содержат локацию на Android Добавление естественного эффекта перетаскивания в ImageView так же, как и чат-чаты Facebook Messenger с использованием библиотеки Rebound Отображение наполовину содержимого панели инструментов Android MPAndroidChart PieChart не отображается при использовании внутри ScrollView