Android listView 继承ListActivity的用法 android
在手机中常常有列表方式。若是Activity中只有惟⼀⼀个List(这也是一般的状况),能够继
承ListActivity来实现。咱们用两个例子来学习List。
List例子⼀:利用Android自带的List格式
步骤⼀:Android XML文件
ListActivity是⼀个全屏的list,若是咱们须要定制layout,例如加上⼀个button之类的什么的,咱们
需将ListView 的id设置为“@android:id/list”,咱们能够同getListView来获取ListView的对象,下面
是XML的例子:
....
<LinearLayout ...> <!-- 在这里我曾忘了设定android:orientation="vertical" ,结果没法显
示第二个widget,查了我好久-->
...<Button … /> <--在这个例子中,咱们在加入了⼀个Button,所以采用定制Layout的
方式,即设置
@android :id/list -->
<ListView android:id="
@android :id/list "
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false" />
</LinearLayout>
步骤二:源代码
1)使用String数组设置List的item内容
例如:String[] items={"One", "Two", "Three", "Four", "Five"};
2)在onCreate中将item的内容加入,使用setListAdapter并设置List的格式
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));
ArrayAdapter有三个参数,第⼀是对象,第二是List的格式,第三个是List的内容。对于格式这个
例子采用了Android自定义的 几种格式,后面会具体列出。android.R.layout.simple_list_item_1
是TextView的方式,采用big font,是最为常见的方式。
3)点击List的Callback方法
因为集成了ListActivity,能够直接使用回调函数onListItemClick
4)例子
public class BeginingBook extends ListActivity {
String[] items={"One","Two","Three","Four","Five","Six","Serven"};
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String>( this ,
android.R.layout.simple_list_item_1, items ));
button =(Button)findViewById(R.id.chapter7);
}
public void onListItemClick (ListView parent,View v, int position, long id){
button.setText(items[position]); //position是点击的item的序号,从0开始。
}
}
5)不一样的呈现模式
咱们修改ArrayAdapter的第二个显示的模式。另外能够经过getListView()获取ListView的对象,设
置ListView 的⼀些属性,ListView的⼀些经常使用方法
:setChoiceMode(),getCheckedItemPositions() 。
setListAdapter (new
ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice
,items));
getListView().setChoiceMode (ListView.CHOICE_MODE_SINGLE); //代表有选项,
若是不设置,缺省为none,即咱们点击后仍无反应
setListAdapter (new
ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice
,items));
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //注意,只要点
击就会触发Callback,而不过是的点击后选上仍是变为取消。
setListAdapter (new
ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked ,items));
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
下面,第⼀个图为android.R.layout.simple_list_item_1,接着依次为上面三种格式。 数组
List例子二:自定义的List格式(来自Tutorial)
步骤⼀:创建⼀个描述list item格式的XML文件
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rowtv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:textSize="16dip">
</TextView>
步骤二:经过XML定义item
在第⼀个例子中,咱们使用String[]来定制item。可是以前,咱们也学习到,为了适合多种语言,
最要这些信息都在XML文件中定义,只需更换XML文件,就能够适配不一样的语言。咱们
在string.xml文件中增长相关的定义:
<?xml version="1.0" encoding="utf-8"?>
<resources>
… …
<string-array name ="countries_arry">
<item> Bharain </item>
<item> Bangladesh </item>
<item>Barbados </item>
<item>Belarus </item>
<item>Belgium </item>
<item>Belize </item>
<item>Benin </item>
</string-array>
</resources>
步骤三:源代码
public class Chapter7Test2 extends ListActivity {
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] ide
contries=getResources().getStringArray(R.array.countries_arry); setListAdapter(new ArrayAdapter<String>(this, R.layout.chapter_7_test2_list, contries)); ListView lv=getListView (); lv.setTextFilterEnabled(true); lv.setOnItemClickListener (new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view, int position, long id){ //Toast.makeText(Chapter7Test2.this, ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); } }); } } Toast 上面给出Toast的例子。Toast.makeText(对象,文本内容,格式).show()。