您的位置:首页 > 其它

安卓开发_浅谈ListView(ArrayAdapter数组适配器)

2013-06-07 14:49 555 查看
列表视图(ListView)以垂直的形式列出需要显示的列表项。

实现过程:新建适配器->添加数据源到适配器->视图加载适配器

在安卓中,有两种方法可以在屏幕中添加列表视图

1、直接用ListView组件创建

2、让Activity继承ListActivity实现

一、xml文件方式创建列表

布局文件代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
android:id="@+id/listView1"
android:entries="@array/list"
//在res/layout  的string.xml中添加数组资源的名称
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>

</LinearLayout>


相应的res/layout 中 数组资源

<resources>

<string name="app_name">xqx_lianxi</string>
<string-array name = "list">   /数组资源名称为list 与layout中对应
<item>山东大学</item>
<item>山东科技大学</item>
<item>山东理工大学</item>
<item>山东建筑大学</item>
<item>山东农业大学</item>
<item>济南大学</item>
<item>烟台大学</item>
<item>鲁东大学</item>
<item>临沂大学</item>
<item>聊城大学</item>
</string-array>
</resources>


java代码

package xqx;

import com.example.xqx_lianxi.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class List_lianxi extends Activity{
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list_lianxi);

list = (ListView) findViewById(R.id.listView1);

//为列表视图中选中的项添加响应事件
list.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View arg1, int pos,
long id) {
// TODO Auto-generated method stub
String result = parent.getItemAtPosition(pos).toString(); //获取选择项的值
Toast.makeText(List_lianxi.this, "点击了 "+result, Toast.LENGTH_SHORT).show();//输出选中项消息
}
});
}

}


效果图:



二、java代码动态创建列表

1、布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
android:id="@+id/id_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" >  //这里就不用指定数据源了
</ListView>

</LinearLayout>


2、Acitivity代码

package price_ui;

import com.example.allcode.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class ListView_test extends Activity{
private ListView list;
private ArrayAdapter<String> arrayadapter;
private SimpleAdapter simpleadapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_text);

list = (ListView) findViewById(R.id.id_listview);
String schools[] = {"山东大学","山东理工大学","山东科技大学","山东农业大学"};
//新建适配器,适配器加载数据源
//第一个参数:上下文
//第二个参数:当前列表项加载的布局文件
//第三个参数:数据源

arrayadapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, schools);

//ListView视图加载适配器
list.setAdapter(arrayadapter);

//为列表视图中选中的项添加响应事件
list.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View arg1, int pos,
long id) {
// TODO Auto-generated method stub
String result = parent.getItemAtPosition(pos).toString(); //获取选择项的值
Toast.makeText(ListView_test.this, "点击了 "+result, Toast.LENGTH_SHORT).show();//输出选中项消息
}
});
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: