我创建了一个包含3个字段的数据库。我需要将这些数据绑定到我自定义列表视图中的文本框。如何将数据从数据库绑定到自定义列表视图
0
A
回答
0
尝试这个例子: 类文件 - >
public class SimpleDBExActivity extends Activity {
/** Called when the activity is first created. */
DataBaseHelper dbHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ListView list = (ListView) findViewById(R.id.lis1);
this.dbHelper=new DataBaseHelper(SimpleDBExActivity.this);
dbHelper.insert("121", "some text111");
dbHelper.insert("122", "some text222");
dbHelper.insert("123", "some text333");
dbHelper.insert("124", "some text444");
ArrayList<String> resultsArr = dbHelper.getAllMsgs();
list.setAdapter(new MyCustomBaseAdapter(this, resultsArr));
}}
class MyCustomBaseAdapter extends BaseAdapter {
private static ArrayList<String> searchArrayList;
private LayoutInflater mInflater;
public MyCustomBaseAdapter(Context context, ArrayList<String> results) {
searchArrayList = results;
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return searchArrayList.size();
}
public Object getItem(int position) {
return searchArrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listrow, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.textID);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(searchArrayList.get(position));
return convertView;
}
static class ViewHolder {
TextView text;
}}
0
这是分贝类DataBaseHelper.java
public class DataBaseHelper extends SQLiteOpenHelper{
private static final String DB_NAME="SampleMsgDb";
private static final String TABLE="SampleTABLE";
private static final int DB_VERSION=1;
private static final String COLUMN1="received_Time";
private static final String COLUMN2="col1";
private static final String COLUMN3="col2";
private Context myContext;
private SQLiteDatabase myDataBase;
DataBaseHelper dbHelper;
public DataBaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
myContext=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "create table " + TABLE + "("+ COLUMN1 + " integer , " + COLUMN2 + " text not null, "
+ COLUMN3 + " text not null);";
Log.d("EventsData", "onCreate: " + sql);
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
if (oldVersion >= newVersion)
return;
String sql = null;
if (oldVersion == 1)
sql = "alter table " + TABLE + " add note text;";
if (oldVersion == 2)
sql = "";
Log.d("EventsData", "onUpgrade : " + sql);
if (sql != null)
db.execSQL(sql);
}
public void insert(String number, String message) {
dbHelper=new DataBaseHelper(myContext);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DataBaseHelper.COLUMN1, System.currentTimeMillis());
values.put(DataBaseHelper.COLUMN2, number);
values.put(DataBaseHelper.COLUMN3, message);
db.insert(DataBaseHelper.TABLE, null, values);
System.out.println("inserted success");
db.close();
if (myDataBase != null)
myDataBase.close();
}
@SuppressWarnings("null")
public ArrayList<String> getAllMsgs(){
ArrayList<String> finalResArr = null;
String result = "";
String resultQuery = "select * from " + TABLE + "";
dbHelper = new DataBaseHelper(myContext);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery(resultQuery, null);
finalResArr = new ArrayList<String>();
if (cursor.moveToFirst()) {
do {
result = cursor.getString(1)+":"+cursor.getString(2);
finalResArr.add(result);
} while (cursor.moveToNext());
}
db.close();
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
return finalResArr;
}
@Override
public synchronized void close() {
super.close();
if (myDataBase != null)
myDataBase.close();
}}
0
main.xml中
<ListView android:id="@+id/lis1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></ListView>
在listrow.xml
<TextView android:id="@+id/textID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#ffffff"/>
0
Cursor c = mydbhelper.getAllCategories();
startManagingCursor(c);
// Create an array to specify the fields we want to display in the list (TITLE,DATE,NUMBER)
String[] from = new String[] {dbadapter.KEY_CATEGORYDESC};
// an array of the views that we want to bind those fields to (in this case text1,text2,text3)
int[] to = new int[] {R.id.text1};
// Now create a simple cursor adapter and set it to display
SimpleCursorAdapter adapter =
new SimpleCursorAdapter(this, R.layout.cate_row, c, from, to);
setListAdapter(adapter);
}
相关问题
- 1. Android:从数据库绑定数据到列表视图
- 2. 如何从sqlite数据库中添加自定义列表视图的数据?
- 3. 自定义列表视图从数据添加数据
- 4. 如何将自动填充框绑定到数据库表列?
- 5. iOS图表库 - 无法将数据绑定到图表视图
- 6. 将选定的列从数据表绑定到数据网格
- 7. 来自数据库的自定义列表视图
- 8. 将数据从自定义表格插入Wordpress数据库表
- 9. WPF列表视图数据绑定
- 10. 列表视图数据绑定混淆
- 11. 数据绑定列表视图
- 12. 如何将数据从数据库绑定到silverlight中的treeview?
- 13. 如何将数据从数据库绑定到控制字段?
- 14. WPF如何将自引用数据集绑定到树视图
- 15. 如何显示特定的数据从数据库到列表视图sqlitedatabase
- 16. 将数据绑定到滚动视图
- 17. 如何将用户自定义数据添加到数据库?
- 18. 树视图绑定到数据表
- 19. 如何手动将数据绑定到数据列表
- 20. 如何将数据表绑定到多个图表系列
- 21. 绑定数据库到下拉列表
- 22. 如何将自定义对象数据绑定到组合框
- 23. 如何将json数据绑定到自定义类
- 24. 如何将数据绑定到自定义日历小部件
- 25. 如何将数据库中的列表绑定到RibbonComboBox?
- 26. 在自定义列表视图如何筛选数据
- 27. 将选择查询数据绑定到视图模型列表
- 28. 数据绑定到自定义的DataGridView
- 29. 如何将表从数据库绑定到checkedListBox?
- 30. 将数据添加到自定义列表视图滚动列表
它作为你的问题很简单。只需运行查询,您将拥有'Cursor'并遍历游标并获取数据并将其显示在ListView中。 – 2012-04-27 05:49:41
使用自定义数组列表中的任何三个输入,并简单地显示它在listview.i已经在它上面。 – Furqi 2012-04-27 06:14:49