当前位置:首页 » 参考文献 » androidlistview数据库

androidlistview数据库

发布时间: 2021-03-30 13:36:05

㈠ android数据库更新后怎样刷新listview数据

0、本质上是listview绑定Adapter,Adapter关联List,因此List变化后导致Adapter同步变化;再通过调用adapter.notifyDataSetChanged();方法使得listview界面自动更新。
操作:
1、List<String> strName = new ArrayList<String>();//实际的数据源
2、Adapter adapter = new ArrayAdapter<String>(context,
R.layout.xmlforitem, strName);//适配器,其中 R.layout.xmlforitem是列表中每一项的布局,可以用默认的也可自建,strName则是将数据源绑定到适配器
3、listView.setAdapter(adapter);//将适配器绑定到列表显示控件ListView;
4、strName.add("TEST ONE");//增加一项,引起list变化,Adapter也随之变化;
5、adapter.notifyDataSetChanged();//调用notifyDataSetChanged();更新适配器,ListView会自动刷新,notifyDataSetChanged()方法可能需要在UI线程中调用,建议自行测试;

6、数据增加可能引起内存变化,需防内存溢出;
7、其他。

以上仅供参考,建议多搜索相关文档。

㈡ android如何将从数据库读取的数据显示在listview中

final SimpleAdapter adapter = new SimpleAdapter(this, getData(),
R.layout.mainlayout, new String[] { "text", "time", "image" },
new int[] { R.id.PL_TextView01, R.id.PL_TextView02,
R.id.PL_ImageView01 });
lv.setAdapter(adapter);

private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();

Cursor cur = DR.query("DB", new String[] { "text", "time" }, null,
null, null, null, "time desc");
while (cur.moveToNext()) {
for (int i = 0; i < cur.getCount(); i++) {
cur.moveToPosition(i);
String text = cur.getString(0);
String time = cur.getString(1);

map = new HashMap<String, Object>();

map.put("text", text);
map.put("time", time);
map.put("image", R.drawable.ic_menu_close_clear_cancel);
list.add(map);
}
}

return list;
}

我是使用SimpleAdapter 作为listview的适配器 通过数据的query方法 将数据放入listview

㈢ android,怎么得到listview里的项目在数据库里的_id

ListView 通常都是用自定义的Adapter 然后将对象与Adapter进行绑定
在Adapter的getView方法中处理视图的显示内容操作
数据库的_id应该是保存到Adapter绑定的对象中

㈣ android中怎么将数据库中值显示在listview中

假设从数据库获取到的数据为list

自定义Adapter继承自BaseAdapter,重写getView方法,实例化列表项并且绑定数据就可以了

/**新建一个类继承BaseAdapter,实现视图与数据的绑定*/
{
;//得到一个LayoutInfalter对象用来导入布局
privateListlist;

/**构造函数*/
publicMyAdapter(Contextcontext,Listlist){
this.mInflater=LayoutInflater.from(context);
this.list=list;
}

@Override
publicintgetCount(){
returnlist.size();//返回数组的长度
}

@Override
publicObjectgetItem(intposition){
returnlist.get(position);
}

@Override
publiclonggetItemId(intposition){
return0;
}

@Override
publicViewgetView(finalintposition,ViewconvertView,ViewGroupparent){
ViewHolderholder;
if(convertView==null){
convertView=mInflater.inflate(R.layout.item,null);
holder=newViewHolder();
/**得到各个控件的对象*/
holder.title=(TextView)convertView.findViewById(R.id.ItemTitle);
holder.text=(TextView)convertView.findViewById(R.id.ItemText);
holder.bt=(Button)convertView.findViewById(R.id.ItemButton);
convertView.setTag(holder);//绑定ViewHolder对象
}
else{
holder=(ViewHolder)convertView.getTag();//取出ViewHolder对象
}

holder.title.setText(list.get(position).getId().toString());
holder.text.setText(list.get(position).getName().toString());

returnconvertView;
}

/**存放控件*/
classViewHolder{
publicTextViewtitle;
publicTextViewtext;
}

}

㈤ android中listview控件显示数据库的东西

CursorAdapter
继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁。
public abstract class
CursorAdapter
extends BaseAdapter
直接子类只有ResourceCursorAdapter
Class Overview
Adapter that exposes data from a Cursor to a ListView widget.
The Cursor must include a column named "_id" or this class will not work.
注意cursor的必须要有个命名为"_id"的列。比如Contacts._ID就为"_id"
必须实现以下函数:
abstract View newView(Context context, Cursor cursor, ViewGroup parent)
Makes a new view to hold the data pointed to by cursor.
abstract void bindView(View view, Context context, Cursor cursor)
Bind an existing view to the data pointed to by cursor
注意:
newView该函数第一次回调用后,如果数据增加后也会再调用,但是重绘是不会调用的。
数据增加后,回调用该函数来生成与新增数据相对应的view。
bindView函数第一次回调用后,如果数据更新也会再调用,但重绘会再次调用的。
【总的来说应该是在调用bindView如果发现view为空会先调用newView来生成view】
i

[java]
view plain

<span style="font-size:16px;">mport java.util.List;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.os.Handler;
import android.content.Context;
import android.content.ContentValues;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ListView;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.TextView;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.RawContacts;
import android.view.View.OnClickListener;
import android.widget.Button;
public class HelloCursor extends ListActivity {
private static String[] PROJECTION = new String[] { Contacts._ID,
Contacts.DISPLAY_NAME };

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Cursor c = getContentResolver().query(Contacts.CONTENT_URI, PROJECTION,
null, null, Contacts.DISPLAY_NAME + " COLLATE NOCASE");
startManagingCursor(c);
MyCursorAdapter adapter = new MyCursorAdapter(this, R.layout.list_row,
c);
this.setListAdapter(adapter);
Button button = (Button)findViewById(R.id.Button01);
OnClickListener listener=new OnClickListener(){
@Override
public void onClick(View v) {
doAction();
}
};
button.setOnClickListener(listener);
mHandler = new Handler();

}

private String[] mStrings = { "hubin", "hudashi", "robin" };
int cnt = 0;
private Handler mHandler;

class AddContactThread implements Runnable {
public void run() {
int nStringLength = mStrings.length;
int randomNumber = 0;
ContentValues newValues = new ContentValues();
String tempString = null;
randomNumber = (int) (Math.random() % 10);
for (int i = 0; i < nStringLength; i++) {
tempString = mStrings + cnt + randomNumber;
newValues.put(Contacts.DISPLAY_NAME, tempString);
getContentResolver().insert(RawContacts.CONTENT_URI, newValues);
newValues.clear();

}
cnt++;
}
}
AddContactThread addContact=new AddContactThread();
void doAction()
{
mHandler.post(addContact);
}
}
class MyCursorAdapter extends CursorAdapter {
Context context=null;
int viewResId;
public MyCursorAdapter(Context context, int resource, Cursor cursor) {
super(context,cursor);
viewResId=resource;
}
public View newView(Context context, Cursor cursor, ViewGroup parent) {

TextView view =null;
LayoutInflater vi = null;
vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view =(TextView)vi.inflate(viewResId, parent, false);
//v =(TextView)vi.inflate(textViewResourceId,null);
Log.i("hubin","newView"+view);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
Log.i("hubin","bind"+view);
TextView nameView = (TextView) view;
// Set the name
nameView.setText(cursor
.getString(cursor.getColumnIndex("DISPLAY_NAME")));
}
}

㈥ android 怎么把存入数据库的信息显示在ListView中

你可以从数据库中获取数据,通过查找你所需的数据返回的是一个cursor,然后把cursor转化成一个list<map<>>或者 list<对象> ,然后通过适配器,把这些数据设置在listview上面。

㈦ android控件listview怎样显示数据库数据呢

使用SimpleAdapter 作为listview的适配器 通过数据的方法 将数据放入listview:

finalSimpleAdapteradapter=newSimpleAdapter(this,getData(),
R.layout.mainlayout,newString[]{"text","time","image"},
newint[]{R.id.PL_TextView01,R.id.PL_TextView02,
R.id.PL_ImageView01});
lv.setAdapter(adapter);

privateList<Map<String,Object>>getData(){
List<Map<String,Object>>list=newArrayList<Map<String,Object>>();
Map<String,Object>map=newHashMap<String,Object>();

Cursorcur=DR.query("DB",newString[]{"text","time"},null,
null,null,null,"timedesc");
while(cur.moveToNext()){
for(inti=0;i<cur.getCount();i++){
cur.moveToPosition(i);
Stringtext=cur.getString(0);
Stringtime=cur.getString(1);

map=newHashMap<String,Object>();

map.put("text",text);
map.put("time",time);
map.put("image",R.drawable.ic_menu_close_clear_cancel);
list.add(map);
}
}
returnlist;
}
热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731