zoukankan      html  css  js  c++  java
  • 赵雅智_ListView_SimpleAdapter

    项目步骤

    1. 声明listView控件并获取显示的视图
    2. 获取显示的数据
    3. 设置显示的adapter
    4. 注冊点击事件

    详细案例

    实现效果:

    查找的方法

    public List<Map<String, Object>> getData() {
    		SQLiteDatabase db = dh.getWritableDatabase();
    		List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
    		Cursor c = db
    				.rawQuery(
    						"select userid ,username,userage,usersalary,userphone from users",
    						null);
    
    		while (c.moveToNext()) {
    			Map<String, Object> map = new HashMap<String, Object>();
    			map.put("id", c.getInt(c.getColumnIndex("userid")));
    			map.put("name", c.getString(c.getColumnIndex("username")));
    			map.put("age", c.getInt(c.getColumnIndex("userage")));
    			map.put("phone", c.getString(c.getColumnIndex("userphone")));
    			data.add(map);
    		}
    		db.close();
    		return data;
    	}


    布局文件

    同BaseAdapter的布局文件activity_main.xml

    ArrayAdapter实现类(主程序)


    package com.example.android_sqlite;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import android.app.Activity;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.SimpleCursorAdapter;
    import android.widget.Toast;
    
    import com.example.android_sqlite.dao.impl.UserDaoImpls;
    import com.example.android_sqlite.database.DatabaseHelper;
    
    /**
     * SimpleAdapter
     * 
     * @author zhaoyazhi
     * 
     */
    public class MainActivity extends Activity implements OnItemClickListener {
    	private ListView lv_users;// 视图层
    
    	// model层 相关的对象的声明
    	private DatabaseHelper dh;
    	private UserDaoImpls userDao;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    
    		// 模型层
    		dh = new DatabaseHelper(this);// 创建数据库
    		userDao = new UserDaoImpls(dh);// 获取显示数据 model
    		List<Map<String, Object>> data = userDao.getData();// 查询获取数据
    
    		// 控制层 依赖于模型层
    		SimpleAdapter adapter = new SimpleAdapter(this, data,
    				R.layout.item_phone, new String[] { "name", "phone", "id",
    						"age" }, new int[] { R.id.tv_name, R.id.tv_phone,
    						R.id.tv_id, R.id.tv_age });
    
    		// 视图层 依赖于控制层
    		lv_users = (ListView) findViewById(R.id.lv_users);
    		lv_users.setAdapter(adapter);
    
    		// 注冊点击事件
    		lv_users.setOnItemClickListener(this);
    
    	}
    
    	@Override
    	public void onItemClick(AdapterView<?> parent, View view, int position,
    			long arg3) {
    
    		// 获取点击我的数据
    		Toast.makeText(this, parent.getItemAtPosition(position) + "", 0).show();
    
    	}
    
    }
    


  • 相关阅读:
    Qt的.pro文件
    AI_八数码
    安装 MINGW GCC 4.4.0
    VC中应用Excel
    八数码问题_启发搜索
    【收集】【收藏】【转帖】game development resouce
    QT小记之在VS2005中使用QT
    [转文]VS2008 安装 Boost 1.43.0
    搬家到博客园了
    转 暴雪总裁总结游戏十条经验
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6919737.html
Copyright © 2011-2022 走看看