Note that there are some explanatory texts on larger screens.

plurals
  1. POListview error: "Your content must have a ListView whose id attribute is 'android.R.id.list'"
    primarykey
    data
    text
    <p>I am getting an error in my logcat saying "Your content must have a ListView whose id attribute is 'android.R.id.list'". My code compiles and runs but force closes when I start my listview activity. I've checked on many similar questions, it seems to be a common problem but I am still unable to fix my code.</p> <p>The Declaration:</p> <pre><code> private ListView lv; Context mContext; List mList; String[] testcontacts; MessageView aa = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.firstlist); testcontacts = getResources() .getStringArray(R.array.testcontacts_array); aa = new MessageView(); lv = getListView();/*(ListView) lv.findViewById(R.id.list); Had to comment out, it cannot find list*/ lv.setAdapter(aa); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) { // When clicked, show a toast with the TextView text Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); } }); } class MessageView extends ArrayAdapter&lt;String&gt; { MessageView() { super(FirstLoginActivity.this, android.R.layout.activity_list_item, testcontacts); // TODO Auto-generated constructor stub } public View getView(int position, View convertview, ViewGroup parent) { Log.d("Ebz", "inside getView method"); ViewHolder holder; View v = convertview; if (v == null) { Log.d("Ebz", "if v == null"); LayoutInflater inflater = getLayoutInflater(); v = inflater.inflate(R.layout.list_items, null); holder = new ViewHolder(); holder.firstLine = (TextView) v.findViewById(R.id.firstLine); holder.secondLine = (TextView) v.findViewById(R.id.secondLine); holder.icon1 = (ImageView) v.findViewById(R.id.icon1); holder.icon2 = (ImageView) v.findViewById(R.id.icon2); v.setTag(holder); } else { holder = (ViewHolder) v.getTag(); } holder.firstLine.setText(testcontacts[position]); holder.secondLine.setText(testcontacts[position]); holder.icon1.setImageBitmap(null); holder.icon2.setImageBitmap(null); // call the images directly? return v; } class ViewHolder { TextView firstLine; TextView secondLine; ImageView icon1; ImageView icon2; } } } </code></pre> <p>My XML</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" &gt; &lt;RelativeLayout android:id="@+id/top_control_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" &gt; &lt;TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_weight="1" android:background="#cc252a" android:paddingBottom="10dp" android:paddingLeft="10dp" android:paddingTop="10dp" android:text="This will be Changed" android:textAppearance="?android:attr/textAppearanceLarge" /&gt; &lt;/RelativeLayout&gt; &lt;LinearLayout android:id="@+id/bottom_control_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" &gt; &lt;/LinearLayout&gt; &lt;ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_above="@id/bottom_control_bar" android:layout_below="@id/top_control_bar" android:choiceMode="multipleChoice" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p>My ListItems:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" &gt; &lt;RelativeLayout android:id="@+id/top_control_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" &gt; &lt;TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_weight="1" android:background="#cc252a" android:paddingBottom="10dp" android:paddingLeft="10dp" android:paddingTop="10dp" android:text="This will be Changed" android:textAppearance="?android:attr/textAppearanceLarge" /&gt; &lt;/RelativeLayout&gt; &lt;LinearLayout android:id="@+id/bottom_control_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" &gt; &lt;/LinearLayout&gt; &lt;ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_above="@id/bottom_control_bar" android:layout_below="@id/top_control_bar" android:choiceMode="multipleChoice" android:divider="#cc252a" android:dividerHeight="14.5dp" /&gt; &lt;/RelativeLayout&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload