zoukankan      html  css  js  c++  java
  • Android 入门到精通 (界面编程#3ListView)

        在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);
     }

    }


  • 相关阅读:
    提取数据用strpos函数比较,预期和实际不符问题解决
    thinkphp模板中foreach循环没数据的错误解决
    错误之thinkphp模型使用发生的错误
    ThinkPHP添加模板时,犯的三个错
    mysql中的comment用法
    在cmd下输入/g无效
    Windows下PHPUnit安装
    python中string.casefold和string.lower区别
    python3数据类型
    python终端颜色设置
  • 原文地址:https://www.cnblogs.com/windwithlife/p/1529558.html
Copyright © 2011-2022 走看看