android:将自定义列表连接到数据库

标签 android

我有自定义列表的代码。

my_list.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">

     <TextView android:id="@+id/text1"
         android:textSize="16px"
         android:textStyle="bold"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"/>

     <TextView android:id="@+id/text2"
         android:textSize="12px"
         android:textStyle="italic"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"/>
</LinearLayout>

和 Activity :

public class ZcustListActivity extends ListActivity {


//db Work
SQLiteDatabase db;
String SQL;
ArrayList<String> db_results=null;


    private SimpleAdapter notes;

    ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    //db Work
    this.db = this.openOrCreateDatabase("DEMO", MODE_PRIVATE, null);
    this.db.execSQL("CREATE TABLE IF NOT EXISTS MEN(A VARCHAR,B VARCHAR,C VARCHAR);");
    this.db.execSQL("delete from MEN;");
    db.execSQL("INSERT INTO MEN(A,B,C) VALUES('AA1','BB1','CC1');");
    db.execSQL("INSERT INTO MEN(A,B,C) VALUES('DD2','EE2','FF2');");


        notes = new SimpleAdapter(
                this, 
                list,
                R.layout.my_list,
                new String[] { "line1","line2" },
                new int[] { R.id.text1, R.id.text2 }  );
       setListAdapter( notes );

      HashMap<String,String> item = new HashMap<String,String>();
      item.put( "line1","i am row 1" );
      item.put( "line2","i am row 2" );
      list.add( item );
       notes.notifyDataSetChanged();
    }
}

我添加了我的数据库工作 - 但如何组合它?

我是 android 新手,它不适合我......

最佳答案

我猜您已经有了一个 DBManager 类。您使用 SimpleCursorAdapter 在 onCreate 中调用 populateList 方法:

 private DBManager dbM = new DBManager();
 private Cursor c;

 public void populateList(){
       dbM.open();
       c = this.db.query(MEN, new String[] {"line1", "line2"
            }, null, null, null, null, null);
   startManagingCursor(c);

   String[] from = new String[]{"line1","line2" };

       int[] to = new int[]{R.id.text1, R.id.text2};

SimpleCursorAdapter notes = 
        new SimpleCursorAdapter (this, R.layout.list_row, c, from, to);
    setListAdapter(notes);

}
 }

此外,您需要为 list_row 创建一个单独的 View (在 SimpleCursorAdapter 构造函数中使用。)因此定义它(您想要的任何布局都可以,在有问题的情况下,它将是一个带有 2 个 TextView 的 LinearLayout)使用您需要放入表的每一行的数据。

关于android:将自定义列表连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9903690/

相关文章:

android - Android 中的 System.currentTimeMillis()?

java - firebase 数据库查询并返回值 true,但如果用户存在则仍继续前进,并注册重复条目

android - 不对称 map 标记

android - Bitmovin 和 Exoplayer 依赖项冲突

android - 使用 'kotlin-kapt' 插件,Android Studio 不提供有关 Dagger 2 的特定错误

android - Rxjava - 如何正确检查 Maybe/Observable 是否为空?

android - 我可以一次构建我所有的 gradle build flavors 吗?

javascript - 如何使用 cordova 和 angularjs 在混合移动应用程序中上传 pdf 文件?

android - 使用 Coroutine runblock 和 Authenticator 来处理来自改造的 401 响应

android - 获取当前正在运行的 Activity 的实例?