转载:http://skyfengfu.diandian.com/post/2012-10-09/40039413744
ListView是安卓部分中,很常用的一个控件,也是很灵活的一个空间,在软件的很多常用布局中都会用到,所以要熟练运用。
一、初级(简单的现实一个列,并对其点击事件做处理)
效果如下:
点击处理只是一个简单的吐司提示:
这个简单效果的实现有多种方式。
1、让activity继承ListActivity,并且舍弃XML布局文件,全部采用默认布局中存在的布局来布局(=、=)。
首先将继承的Activity改为ListActivity,删除掉
setContentView(R.layout.activity_main);这一句。
然后这个MainActivity本身就是一个ListActivity
public class MainActivity extends ListActivity {
private List<String> arrayData;
// private List<Map<String, ?>> simpleData;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
arrayData = getData();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayData);
setListAdapter(adapter);
}
private List<String> getData() {
List<String> data = new ArrayList<String>();
data.add("刘备");
data.add("关羽");
data.add("张飞");
data.add("赵云");
return data;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Toast.makeText(this, arrayData.get(position), Toast.LENGTH_LONG).show();
}
可以重写ListActivity的系列方法,如onListItemClick();等
2、依然让MainActivity继承Activity,不舍弃XML文件布局方法。
在main布局文件中可以只是简单的布局一个ListView控件,代码就不贴了
在java类中,代码以及注释如下:
public class MainActivity extends Activity {
private List<String> arrayData;
// private List<Map<String, ?>> simpleData;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
arrayData = getData();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayData);
//继承自ListActivity的时候
// setListAdapter(adapter);
//采用布局文件来布局
setContentView(R.layout.activity_main);
ListView listview = (ListView) this.findViewById(R.id.listView);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {
Toast.makeText(getApplicationContext(), arrayData.get(position), Toast.LENGTH_LONG).show();
}
});
}
//如果是继承ListeActivity的话,可以通过重写一下方法来设置点击事件
// @Override
// protected void onListItemClick(ListView l, View v, int position, long id) {
// // TODO Auto-generated method stub
// super.onListItemClick(l, v, position, id);
// Toast.makeText(this, arrayData.get(position), Toast.LENGTH_LONG).show();
// }
private List<String> getData() {
List<String> data = new ArrayList<String>();
data.add("刘备");
data.add("关羽");
data.add("张飞");
data.add("赵云");
return data;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
效果一样。
本文详细介绍如何在安卓应用中使用ListView控件,包括两种不同的实现方式:通过继承ListActivity及使用XML布局文件。此外,还提供了点击事件处理的具体实现。
667

被折叠的 条评论
为什么被折叠?



