我的问题ListActivity
。
我有这个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。
有什么想法吗?
答案 0 :(得分:2)
android:id="@android:id/list"
我想这应该是你自己的ID。像这样:
android:id="@+id/main_list_view"
之后,您可以使用以下内容访问它:
mainListView= (ListView)findViewById(R.id.main_list_view);
答案 1 :(得分:1)
如果您关注this example。
如果您的活动扩展了ListActivity
,那么您的XML应该包含ListView
:
android:id="@android:id/list"
这是对的。但是,初始化ListView
的方式不同:
ListView lv = getListView();
这样就可以了。
答案 2 :(得分:1)
<强> “@机器人:ID /列表”强> 意味着它是android包的一部分你不能使用R.id.list(试试这个android.R.id.list)作为你的包为ADT生成的R类调用它,而不是你可以得到ListView对象, as ListView lView = getListView() 在从XML(布局)中找到任何View对象之前,在顶部使用setContentView方法,否则将获得NullPointerException。