i3geek.com
闫庚哲的个人博客

Android之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;
    }

}

效果一样。

赞(0)
未经允许不得转载:爱上极客 » Android之ListView的用法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址