2011-07-06 14 views
1

私に問題がありますListActivityです。ListViewのIDの問題

私は、このXMLがあります

<LinearLayout> 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 
</LinearLayout> 

と内部を、私持っているこの:

<LinearLayout> 
    <ImageView android:id="@+id/flechas" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    /> 
    <TextView android:id="@+id/textoName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    /> 
    <TextView android:id="@+id/textoPrice" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    /> 
    <Button android:id="@+id/boton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="BUY" 
     android:layout_marginRight="0dip" 
     android:onClick="buy" 
    /> 
</LinearLayout> 

私はそれを表示するためにBaseAdapterを使用しており、これは主なファイルです:

public class Info extends ListActivity{ 

static ArrayList<Quotes> objeto= null; 
static final ArrayList<HashMap<String, String>> lista= new ArrayList<HashMap<String,String>>(); 
private ListView mainListView; 
private InfoModel [] model; 
private CustomAdapterInfo listAdapter; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mainListView= (ListView)findViewById(R.id.); 
    setContentView(R.layout.info); 


    objeto= new ArrayList<Quotes>(); 
    Bundle extras=getIntent().getExtras(); 
    objeto= extras.getParcelableArrayList("datos"); 

    if ((objeto != null) && (objeto.size() != 0)){ 
     model= new InfoModel[objeto.size()]; 
     for (int i=0;i< objeto.size(); i++) { 
      model[i]= new InfoModel(0, objeto.get(i).getName(), objeto.get(i).getTrade()); 
     } 
    } 

    ArrayList<InfoModel> datos= new ArrayList<InfoModel>(); 
    datos.addAll(Arrays.asList(model)); 

    listAdapter= new CustomAdapterInfo(this, datos); 
    mainListView.setAdapter(listAdapter); 
} 

しかし私のmainListViewはnullです。 R.id.が見つかりません。

アイデア?

+1

あなたのXMLは届きませんでした。 – robamaton

答えて

2
android:id="@android:id/list" 

これはあなた自身のIDであるはずです。あなたがthis exampleに従っている場合

mainListView= (ListView)findViewById(R.id.main_list_view); 
1

:次のように:

android:id="@+id/main_list_view" 

次のようなものを使用してアクセスすることができた後。

あなたの活動がListActivityを拡張する場合は、あなたのXMLが持つべきListViewで正しいのです

android:id="@android:id/list" 

。しかし、あなたがListViewを初期化する方法が異なります。

ListView lv = getListView(); 

これはトリックを行うだろう。

1

「@android:ID /リスト」 は、それはあなたがR.id.listを使用して、それを呼び出すことはできませんアンドロイドパッケージの一部であることを意味するために生成されたRクラスとして(このandroid.R.id.listを試してみてください)あなたのパッケージは、ADTでListViewオブジェクトを取得する代わりに、 としてListView lView = getListView() XML(レイアウト)からViewオブジェクトを見つける前に、setContentViewメソッドを使用してください。そうしないとNullPointerExceptionが発生します。