Android listView 继承ListActivity的用法 在手机中经常有列表方式。如果Activity中只有唯⼀⼀个List(这也是通常的情况),可以继

承ListActivity来实现。我们用两个例子来学习List。

List例子⼀:利用Android自带的List格式

步骤⼀:Android XML文件

ListActivity是⼀个全屏的list,如果我们需要定制layout,例如加上⼀个button之类的什么的,我们

需将ListView 的id设置为“@android:id/list”,我们可以同getListView来获取ListView的对象,下面

是XML的例子:

....

...  

方式,即设置

@android :id/list  -->

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:drawSelectorOnTop="false" />

步骤二:源代码

1)使用String数组设置List的item内容

例如:String[] items={"One", "Two", "Three", "Four", "Five"};

2)在onCreate中将item的内容加入,使用setListAdapter并设置List的格式

setListAdapter(new ArrayAdapter(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( 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(this, android.R.layout.simple_list_item_single_choice

,items));

getListView().setChoiceMode (ListView.CHOICE_MODE_SINGLE); //表明有选项,

如果不设置,缺省为none,即我们点击后仍无反应

setListAdapter (new

ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice

,items));

getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //注意,只要点

击就会触发Callback,而不过是的点击后选上还是变为取消。

setListAdapter (new

ArrayAdapter(this, android.R.layout.simple_list_item_checked ,items));

getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

下面,第⼀个图为android.R.layout.simple_list_item_1,接着依次为上面三种格式。

7d94397a844139f7cebbd9fecab61f81.png List例子二:自定义的List格式(来自Tutorial)

步骤⼀:建立⼀个描述list item格式的XML文件

android:id="@+id/rowtv1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:padding="10dip"

android:textSize="16dip">

步骤二:通过XML定义item

在第⼀个例子中,我们使用String[]来定制item。但是之前,我们也学习到,为了适合多种语言,

最要这些信息都在XML文件中定义,只需更换XML文件,就可以适配不同的语言。我们

在string.xml文件中增加相关的定义:

… …

Bharain

Bangladesh

Barbados

Belarus

Belgium

Belize

Benin

步骤三:源代码

public class Chapter7Test2 extends ListActivity {

public void onCreate (Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

String[]

fafc74cc2c5302205aa76597def7623c.png contries=getResources().getStringArray(R.array.countries_arry); 

setListAdapter(new ArrayAdapter(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()。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐