复杂listview条目
目录
一、项目目录结构
二、类:MainActivity
package com.example.mylistview;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private MyOpenSqlite openSqlite;
private ArrayList<Person> arrayList = new ArrayList<Person>();
private ListView lv_list ;
private Button bt_insert;
private Button bt_querry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_list = (ListView)findViewById(R.id.lv_list);
bt_insert = (Button)findViewById(R.id.bt_insert);
bt_querry = (Button)findViewById(R.id.bt_querry);
//创建sql数据库
openSqlite = new MyOpenSqlite(this);
SQLiteDatabase database = openSqlite.getReadableDatabase();
}
/*
* listview
* */
class Mylistview extends BaseAdapter{
private TextView tv_title;
private TextView tv_content;
@Override
public int getCount() {
return arrayList.size();
}
@Override
public Object getItem(int position) {
Person person = arrayList.get(position);
return person;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
//如果可重用的为0
if(convertView == null) {
view = View.inflate(MainActivity.this, R.layout.item, null);
}else {
view = convertView;
}
tv_title = (TextView)view.findViewById(R.id.tv_title);
tv_content = (TextView)view.findViewById(R.id.tv_content);
tv_title.setText(arrayList.get(position).getName());
tv_content.setText(arrayList.get(position).getPhone());
return view;
}
}
/*
*
* */
public void insert(View v) {
SQLiteDatabase database = openSqlite.getReadableDatabase();
database.execSQL("insert into information (name,phone) values ('zhangsan','1111')");
database.execSQL("insert into information (name,phone) values ('lisi','2222')");
database.execSQL("insert into information (name,phone) values ('wangwu','3333')");
database.close();
}
public void querry(View v) {
SQLiteDatabase database = openSqlite.getReadableDatabase();
Cursor cursor = database.rawQuery("select * from information", null);
while(cursor.moveToNext()) {
Person ps = new Person();
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
ps.setName(name);
ps.setPhone(phone);
arrayList.add(ps);
System.out.println(ps);
//打印下
//Toast.makeText(this, ps.toString(), Toast.LENGTH_SHORT).show();
}
cursor.close();
database.close();
lv_list.setAdapter(new Mylistview());
}
public void delete(View v) {
SQLiteDatabase database = openSqlite.getReadableDatabase();
database.execSQL("insert into information (name,phone) values ('zhangsan','1111')");
database.execSQL("insert into information (name,phone) values ('lisi','2222')");
database.execSQL("insert into information (name,phone) values ('wangwu','3333')");
database.close();
}
}
三、类:MyOpenSqlite
package com.example.mylistview;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MyOpenSqlite extends SQLiteOpenHelper {
public MyOpenSqlite(Context context) {
super(context, "Mysqlite.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table information(_id integer primary key autoincrement, name varchar(10), phone varchar(10))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
四、类:Person
package com.example.mylistview;
public class Person {
private String name;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Person [name=" + name + ", phone=" + phone + "]";
}
}
五、activity_main.xml
<RelativeLayout 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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.mylistview.MainActivity" >
<Button
android:id="@+id/bt_insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#88fff000"
android:onClick="insert"
android:text="插入"
/>
<Button
android:id="@+id/bt_querry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#88fff000"
android:onClick="querry"
android:text="查询"
android:layout_alignParentRight="true"
/>
<ListView
android:id="@+id/lv_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#000000"
android:dividerHeight="2dp"
android:footerDividersEnabled="true"
android:fastScrollAlwaysVisible="true"
android:layout_below="@id/bt_insert"
>
</ListView>
</RelativeLayout>
六、item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/iv_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ff0022"
android:src="@drawable/ic_launcher"
android:layout_margin="10dp"
/>
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="如果让他和会突然告诉对方"
android:textSize="20sp"
android:layout_toRightOf="@id/iv_image"
android:background="#00ff00"
android:layout_margin="5dp"
/>
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="而发热发供热个人供热隔热管"
android:textSize="16sp"
android:textColor="#ff000000"
android:layout_toRightOf="@id/iv_image"
android:layout_below="@id/tv_title"
android:background="#00ffff"
android:layout_margin="5dp"
/>
</RelativeLayout>