Android之ListView的用法(ListActivity)——系列(7)

来源:互联网 发布:杭州行知小学划区 编辑:程序博客网 时间:2024/05/29 08:48

转载: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;    }              }

效果一样。


原创粉丝点击