• android listview onitemclick


     在Android中ListView的使用较为复杂一点,也就是配置其Adapter,Adapter有几种,有ArrayAdapter,SimpleAdapter等,首先要生成一个ListView(当然可以使用ListActivity,此Activity整合了ListView)然后用Adapter来设定ListView的显示数据及布局方式,然后再来响应OnItemClick 事件,或者在ListActivity改写onListItemClick 响应事件函数。看如下代码演示了使用ListActivity:


    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;

    public class Test extends ListActivity {
     @Override
     
    protected void onListItemClick(ListView l, View v, int position, long id) {
      
    // TODO Auto-generated method stub
      super.onListItemClick(l, v, position, id);
      
    this.setTitle(this.mModelData.get(position).get("type").toString());
     }
     SimpleAdapter adapter 
    = null;
     
    private ArrayList<Map<String, Object>> mModelData = null;
        
    /** Called when the activity is first created. */
        @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            initModelData();
            adapter 
    = new SimpleAdapter(this, mModelData, android.R.layout.two_line_list_item, new String[]{"name"}, new int[]{android.R.id.text1});
            
    this.setListAdapter(adapter);
            
    //setContentView(R.layout.main);
        }
        
    public void initModelData()
        {
         mModelData 
    = new ArrayList<Map<String, Object>>();
         Map
    <String, Object> item = new HashMap<String,Object>();
         item.put(
    "name""Linux");item.put("type""OS");
         mModelData.add(item);
         Map
    <String, Object> item2 = new HashMap<String,Object>();
         item2.put(
    "name""Android");item2.put("type""Platform");
         mModelData.add(item2);
         Map
    <String, Object> item3 = new HashMap<String,Object>();
         item3.put(
    "name""Tomato");item3.put("type""Fruit");
         mModelData.add(item3);
         
        }
    }

    下面代码显示了,使用ListView 
    + Activity:


    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.AdapterView.OnItemClickListener;

    public class TestStringList extends Activity implements OnItemClickListener {
        @Override
     
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
      
    this.setTitle("You Click Item:" + String.valueOf(arg2));  
     }
     
    private ListView mListView = null;
     @Override
     
    protected void onCreate(Bundle savedInstanceState) {
      
    // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
      mListView 
    = new ListView(this);
      mListView.setOnItemClickListener(
    this);
      ArrayAdapter
    <String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked,
        
    new String[]{"ItemA""ItemB""ItemC"});
      mListView.setAdapter(adapter);
      
    this.setContentView(mListView);
     }

    }


  • 相关阅读:
    freebsd ports update url
    Cisco交换机里IP和MAC地址互查找出对应端口
    实现不同vlan间的相互通信方法一:单臂路由
    文件共享③Samba实例
    RHEL6基础四十九之RHEL文件(夹)权限进阶篇
    windows下查找指定端口被哪个程序占用
    DNSmasq – 配置DNS和DHCP
    dnsmasq多vlan配置
    dnsmasq.conf 配置
    windows2003 DHCP中批处理绑定IP与MAC
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1802113.html
Copyright © 2020-2023  润新知