2011-07-06 36 views
1

我有一個問題我的ListActivityListView的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爲空。它沒有找到R.id.

任何想法?

+1

您的XML沒有通過。 – robamaton

回答

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

我想這應該是你自己的ID。就像這樣:

android:id="@+id/main_list_view" 

之後,你可以使用類似訪問:

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

如果按照this example

如果你的活動來延長ListActivity,你的XML應該有一個ListView有:

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

這是正確的。但是,你初始化ListView的方式是不同的:

ListView lv = getListView(); 

這會做的伎倆。

1

「@android:ID /列表」 意味着它是Android包使用R.id.list,你不能把它的一部分(試試這個android.R.id.list)作爲生成的R級您可以通過ADT獲取包,但是您可以獲取ListView對象, 作爲ListView lView = getListView() 在從XML(佈局)中查找任何View對象之前,先使用setContentView方法,否則將得到NullPointerException。