您的位置:首页 > 移动开发 > Android开发

Android项目——ListView的使用

2015-11-30 20:55 267 查看
        ListView是android开发经常用的控件,对显示一条一条的数据很有用,下面介绍一下ListView的基本用法。
        ListView的实现需要两个Layout。
       (1)一个是布局文件:每一的显示样式的布局。



(2)主框架文件:容纳List的文件



[align=center]
[/align]
[align=left]下面是activity中的代码:[/align]
public class find_teacher_activity extends ActionBarActivity {
private List<String> list = new ArrayList<String>();
private List<String> list2 = new ArrayList<String>();
private List<String> list3 = new ArrayList<String>();

private Spinner mySpinner1, mySpinner2,mySpinner3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.find_teacher_main);

mySpinner1 = (Spinner) findViewById(R.id.Spinner01);
mySpinner2 = (Spinner) findViewById(R.id.Spinner02);
mySpinner3 = (Spinner) findViewById(R.id.Spinner03);
showSpinner1();
showSpinner2();
showSpinner3();

//////listview
//listView显示
//获取ListView对象
ListView mListView = (ListView)findViewById(R.id.findcourselist);
//下面是数据映射关系,mFrom和mTo按顺序一一对应
String[] mFrom = new String[]{"thisweek_people_name"};
int[] mTo = new int[]{R.id.thisweek_people_name};
//获取数据,这里随便加了10条数据,实际开发中可能需要从数据库或网络读取
List<Map<String,Object>> mList = new ArrayList<Map<String,Object>>();
Map<String,Object> mMap = null;
for(int i = 0;i < 6;i++){
mMap = new HashMap<String,Object>();
mMap.put("thisweek_people_name", "马景甜");
mList.add(mMap);
}
//创建适配器
SimpleAdapter mAdapter = new SimpleAdapter(this,mList,R.layout.find_teacher_item,mFrom,mTo){
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
@SuppressWarnings("unchecked")
final HashMap<String,Object> map = (HashMap<String, Object>) this.getItem(position);
//获取相应View中的Checkbox对象
/*CheckBox checkBox = (CheckBox)view.findViewById(R.id.checked);
checkBox.setChecked((Boolean) map.get("checked"));
//添加单击事件,在map中记录状态
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
map.put("checked", ((CheckBox)view).isChecked());
}
});  */
return view;
}
};
mListView.setAdapter(mAdapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@SuppressWarnings("unchecked")
//获取被点击的item所对应的数据
HashMap<String,Object> map = (HashMap<String, Object>) parent.getItemAtPosition(position);
//下面是你的其他事务逻辑
}
});
}

public void showSpinner1() {
// 第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
list.add("北京");
list.add("河北");
list.add("河南");
list.add("山东");
list.add("山西");
// 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
// 第三步:为适配器设置下拉列表下拉时的菜单样式。 simple_spinner_item
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
// 第四步:将适配器添加到下拉列表上
mySpinner1.setAdapter(adapter);
// 第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中

/* 下拉菜单弹出的内容选项触屏事件处理 */
mySpinner1.setOnTouchListener(new Spinner.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
/* 将mySpinner 隐藏,不隐藏也可以,看自己爱好 */
// v.setVisibility(View.INVISIBLE);
Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+111111111");
return false;
}
});
/* 下拉菜单弹出的内容选项焦点改变事件处理 */
mySpinner1
.setOnFocusChangeListener(new Spinner.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
v.setVisibility(View.VISIBLE);
Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+222222222");
}
});

//mySpinner1.setTextColor(Color.WHITE);
}

////////
public void showSpinner2() {
// 第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
list2.add("男");
list2.add("女");
// 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list2);
// 第三步:为适配器设置下拉列表下拉时的菜单样式。 simple_spinner_item
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
// 第四步:将适配器添加到下拉列表上
mySpinner2.setAdapter(adapter);
// 第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中

/* 下拉菜单弹出的内容选项触屏事件处理 */
mySpinner2.setOnTouchListener(new Spinner.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
/* 将mySpinner 隐藏,不隐藏也可以,看自己爱好 */
// v.setVisibility(View.INVISIBLE);
Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+111111111");
return false;
}
});
/* 下拉菜单弹出的内容选项焦点改变事件处理 */
mySpinner2
.setOnFocusChangeListener(new Spinner.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
v.setVisibility(View.VISIBLE);
Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+222222222");
}
});

//mySpinner1.setTextColor(Color.WHITE);
}

/////////
public void showSpinner3() {
// 第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
list3.add("计算机");
list3.add("金融");
// 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list3);
// 第三步:为适配器设置下拉列表下拉时的菜单样式。 simple_spinner_item
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
// 第四步:将适配器添加到下拉列表上
mySpinner3.setAdapter(adapter);
// 第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中

/* 下拉菜单弹出的内容选项触屏事件处理 */
mySpinner3.setOnTouchListener(new Spinner.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
/* 将mySpinner 隐藏,不隐藏也可以,看自己爱好 */
// v.setVisibility(View.INVISIBLE);
Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+111111111");
return false;
}
});
/* 下拉菜单弹出的内容选项焦点改变事件处理 */
mySpinner3
.setOnFocusChangeListener(new Spinner.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
v.setVisibility(View.VISIBLE);
Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+222222222");
}
});

//mySpinner1.setTextColor(Color.WHITE);
}
}

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