加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Android ListView OnItemClick详解

发布时间:2021-11-25 21:24:26 所属栏目:教程 来源:互联网
导读:在Android中ListView的使用较为复杂一点,也就是配置其Adapter,Adapter有几种,有ArrayAdapter,SimpleAdapter等,首先要生成一个ListView(当然可以使用ListActivity,此Activity整合了ListView)然后用Adapter来设定ListView的显示数据及布局方式,然后再来响
在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);
 }
 
}

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读