6

logcatに「あなたのコンテンツにはid属性が 'android」のListViewが必要です。 R.id.list '"私のコードはコンパイルされて実行されますが、リストビューのアクティビティを開始すると強制終了します。私は多くの同様の質問をチェックしたが、よくある問題だと思われるが、私はまだコードを修正することができない。リストビューのエラー: "あなたのコンテンツにid属性が 'android.R.id.list'であるListViewが必要です。

宣言:

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<?> 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<String> { 
     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; 

     } 
    } 
} 

マイXML

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

    <RelativeLayout 
     android:id="@+id/top_control_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <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" /> 
    </RelativeLayout> 

    <LinearLayout 
     android:id="@+id/bottom_control_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" > 
    </LinearLayout> 

    <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" /> 

</RelativeLayout> 

私のListItem:

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

    <RelativeLayout 
     android:id="@+id/top_control_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 


     <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" /> 

    </RelativeLayout> 

    <LinearLayout 
     android:id="@+id/bottom_control_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" > 
    </LinearLayout> 

    <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" /> 

</RelativeLayout> 

答えて

28

はおそらくListActivityを使用しています。あなたに

はにIDを交換firstlist.xml:ID /リスト:

<ListView 
    android:id="@android:id/list" 
... 

ListActivityが@androidであるXMLであなたのid R.android.id.listを探します。


はまた、この記事を見て:ListView whose id attribute is 'android.R.id.list' Error when I have the ListView id set correctly

+0

私はあなたが何を意味するか知っていると思ういけません。それは私がリストビューを正確にあなたがそれを入力したと宣言したように見える –

+0

私は "lv =(ListView)lv.findViewById(R.id.list);" .listリストを解決できないか、フィールドではありません。 –

+0

lv = getListView();を使用すると動作しません。 –

関連する問題