ListView通过监听打开Activity

首先看一下官方的API


void onItemClick(AdapterView<?> parent, View view,  int position, long id)
参数: parent - The AdapterView where the click happened. 
            view - The view within the AdapterView that was clicked (this will be a view provided by the adapter)
            position - The position of the view in the adapter.
            id - The row id of the item that was clicked. 
解释一下这几个参数
假设现在点击了b这个item
parent:    相当于listview Y适配器的一个指针,可以通过它来获得Y里装着的一切东西,再通俗点就是说告诉你,你点的是Y,不是X
view :          是你点的b这个view的句柄,就是你可以用这个view,来获得b里的控件的id后操作控件,通过它可以获得该项中的各个组件,例如view.textview.settext(“asd”);
position : 是b在Y适配器里的位置(生成listview时,适配器一个一个的做item,然后把他们按顺序排好队,在放到listview里,意思就是这个b是第position号做好的)
id:            是b在listview Y里的第几行的位置(很明显是第2行),在没有headerView,用户添加的view以及footerView的情况下position和id的值是一样的

贴代码 通过position的位置创建Intent对象 打开另一个Activity
public class MainActivity extends Activity {

    private List<Schema> schemaList = new ArrayList<Schema>();
    private String[] schema = {"简单工厂模式","策略模式"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                MainActivity.this,android.R.layout.simple_list_item_1,schema);
        final ListView listView = (ListView)findViewById(R.id.list_view);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position){
                    case 0:
                    Intent a = new Intent(MainActivity.this,jdgc.class);
                    startActivity(a);
                        break;
                    case 1:
                        Intent b = new Intent(MainActivity.this,celve.class);
                        startActivity(b);
                        break;
                }
        }
        });
  }

参考文章:http://blog.csdn.net/jason0539/article/details/9628433
本来想自己写一下对参数的解释。。发现博主写的太好我没法改.. 原版套用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值