Android使用ListView将数据显示到手机屏幕上
来源:互联网 发布:linux社区论坛 知乎 编辑:程序博客网 时间:2024/04/29 15:04
下面是一个LinearLayout,里面的内容超级简单,就是一个ListView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <ListView android:id="@+id/Lv" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView></LinearLayout>
为了使程序更有扩展性,我这里创建了一个model包,里面包含一个Person类,就是数据库的信息名称
package com.neusoft.ListView.model;public class Person {private String _id;private String name;private String salary;private String phone;public Person(String _id, String name, String salary, String phone) {super();this._id = _id;this.name = name;this.salary = salary;this.phone = phone;}@Overridepublic String toString() {return _id + "," + name + "," + salary+ "," + phone;}public String get_id() {return _id;}public void set_id(String _id) {this._id = _id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSalary() {return salary;}public void setSalary(String salary) {this.salary = salary;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}下面的这个MyOpenHelper类就是老套路了,大家都知道。他是为了创建数据库和升级数据库等等对数据库的操作的类
package com.neusoft.ListView;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class MyOpenHelper extends SQLiteOpenHelper {public MyOpenHelper(Context context) {super(context, "people.db", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table person(_id integer primary key autoincrement,name char(20),salary char(20),phone char(20))");}@Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {System.out.print("数据库升级了");}}
这是MainActivity,
package com.neusoft.ListView;import java.util.ArrayList;import java.util.List;import java.util.zip.Inflater;import android.os.Bundle;import android.R.integer;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.view.LayoutInflater;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import com.neusoft.ListView.model.*;public class MainActivity extends Activity {private ListView Lv;List<Person> personList;//创建一个List集合,将所有数据库中每个person加入到此集合中@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//insert();//从数据库中取出数据personList=new ArrayList<Person>();MyOpenHelper oh=new MyOpenHelper(this);SQLiteDatabase db=oh.getWritableDatabase();Cursor cursor=db.query("person",null, null, null, null, null,null);while(cursor.moveToNext()){//循环取出每个person的值String _id=cursor.getString(cursor.getColumnIndex("_id"));String name=cursor.getString(cursor.getColumnIndex("name"));String salary=cursor.getString(cursor.getColumnIndex("salary"));String phone=cursor.getString(cursor.getColumnIndex("phone"));Person p=new Person(_id, name, salary, phone);personList.add(p);//将值加入到集合中}Lv=(ListView) findViewById(R.id.Lv);//将数据显示到屏幕Lv.setAdapter(new MyAdapter());}//创建一个内部类MyAdapter,适配器,就是将数据显示到屏幕的工具。class MyAdapter extends BaseAdapter{@Overridepublic int getCount() {return personList.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int arg0, View arg1, ViewGroup arg2) {Person p=personList.get(arg0);//第一种写法//View view=View.inflate(MainActivity.this,R.layout.item_activity, null);//第二种写法//LayoutInflater inflater=LayoutInflater.from(MainActivity.this);//View view=inflater.inflate(R.layout.item_activity, null);//第三种写法//LayoutInflater inflater2=(LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);//View view2=inflater2.inflate(R.layout.item_activity, null);//ListView优化View view=null;if(arg1==null)//这里是ListView的优化,有了这就话话后,我们就可以把用过了的存入缓存,避免浪费资源{view=View.inflate(MainActivity.this, R.layout.item_activity, null);}else{view=arg1;}TextView tv_name=(TextView) view.findViewById(R.id.tv_name);tv_name.setText(p.getName());TextView tv_salary=(TextView) view.findViewById(R.id.tv_salary);tv_salary.setText(p.getSalary());TextView tv_phone=(TextView) view.findViewById(R.id.tv_phone);tv_phone.setText(p.getPhone());return view;}}//刚开始插入的数据public void insert(){MyOpenHelper oh=new MyOpenHelper(this);SQLiteDatabase db=oh.getWritableDatabase();for(int i=0;i<100;i++){ContentValues values=new ContentValues();values.put("name", "张宇翔"+i);values.put("salary", "1500"+i);values.put("phone","13408"+i);db.insert("person", null, values);}}}
源码
1 0
- Android使用ListView将数据显示到手机屏幕上
- android 使用SimpleCursorAdapter将SQLite数据显示到ListView
- 将数据显示到屏幕上(用ListView)
- android 使用asm.jar将android手机屏幕投影到电脑上
- 一个将Android手机屏幕投影到电脑屏幕上的软件
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 使用asm.jar将Android手机屏幕投影到电脑
- 将android手机屏幕投影到电脑端
- 从网络上异步加载数据,显示到ListView上
- rikao3将数据图片展示到listview上
- hdoj-1215-七夕节
- "盈不足术"与"老鼠打洞问题"的近似解
- STL的string如何使用UNICODE?
- android audioflinger
- Angularjs【监听数据的变化】和【如何修改数据】和【数据变化的传播】
- Android使用ListView将数据显示到手机屏幕上
- Bananapro SimpleCV 人脸定位
- Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition)
- zoj-3486-Judge Internal Error
- 安全卫士App需要的基本操作(入门概述)
- [Unity编辑器]编辑器与序列化
- Java多线程与并发(一)之概念及操作方法
- 苦才是人生的经典美言
- UI基础_UISearchBar