AndroidStudio之@android:id/list与@+id/list

前言

这里着重讲@android:id/list

@android:id/list@+id/list的区别

@+id: 新增一个资源id

@id/android:list@android:id/list: 引用现有的资源id

调用@android:id/list

1
2
3
//先定义一个ListView,再和控件绑定
private ListView Lv = null;
Lv = (ListView) findViewById(R.id.list);

调用@android:id/list@id/android:list

两者区别:

  • @id/android:list将去寻找android包内的list这个id。
  • @android:id/list首先定义了android的包,然后告诉它查找该包内的id/list。
    写法不同,最终都是会去找android.R.id.list;
    用代码来写也是和@+id/list一样findViewById(android.R.id.list)

@android:id/list补充

  • Activity中使用setListAdapter(adapter)方法时就默认设置到了这个list上。如果按@android:id/list的写法,则需要findViewById先得到控件对像,再调用对象的setListAdapter(adapter);
    (PS:setListAdapter(adapter)方法时,Activity需要继承ListActivity)
  • ListView中没有值而又想提示一句话时,那么可用<TextView android:id=”@id/android:empty” …… />提示信息。
lewulu!
-------------The End-------------
0%