【问题标题】:Can I add custom list layout by SimpleCursorAdapter?我可以通过 SimpleCursorAdapter 添加自定义列表布局吗?
【发布时间】:2013-04-01 06:47:30
【问题描述】:

我是 android 新手..我正在学习使用数据库文件..我有一个像这样的simplecurseadapter

Cursor c = db.query(TABLE_NAME,columns,null, null, null, null, COLUMN_ID);

            SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.list_item, c, 
                   new String[] {COLUMN_ID,COLUMN_NAME,COLUMN_order}, new int[] {R.id.list_item_text_id,R.id.list_item_text_main,R.id.list_item_text_sub}, 0);

        ListView list = (ListView) findViewById(R.id.list_poet_name);
        list.setAdapter(adapter);

我想知道有没有办法制作自定义列表视图?我的 column_order 的值为 0,1,我希望在 R.id.list_item_text_main 中显示值为 0 的行,如果其值为 1,则在 R.id.list_item_text_sub 中显示我可以在SimpleCursorAdapter 中定义一个 if 语句吗?我是怎么做?如果不是……最好的方法是什么?

【问题讨论】:

    标签: android database android-listview simplecursoradapter


    【解决方案1】:

    这样查询

    Cursor c = db.query(TABLE_NAME,columns,COLUMN_order + "=? OR " + COLUMN_order + "=?", new String[]{"0", "1"}, null, null, COLUMN_ID);
    
    
    
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.list_item, c, 
                   new String[] {COLUMN_ID,COLUMN_NAME,COLUMN_order}, new int[] {R.id.list_item_text_id,R.id.list_item_text_main,R.id.list_item_text_sub}, 0);
    
        ListView list = (ListView) findViewById(R.id.list_poet_name);
        list.setAdapter(adapter);
    

    【讨论】:

    • 但是这段代码将显示 R.id.list_item_text_main 中的所有名称和 R.id.list_item_text_sub 中的所有订单我只想显示 R.id.list_item_text_sub 中值为 1 和 R 中值为 0 的订单.id.list_item_text_sub ..我想我必须使用 if 语句来执行此操作..但我不知道该怎么做
    • 然后你查询你的数据库只返回那些值
    • 但是我已经用我的代码做这个了..对吗?我想我必须使用一些像这样的类
    • private class CustomViewBinder implements ViewBinder { @Override public boolean setViewValue(View view, Cursor cursor, int columnIndex) { if (columnIndex == cursor.getColumnIndex(ClubCP.KEY_IS_STAR)) { // If the column is IS_STAR then we use custom view. int is_star = cursor.getInt(columnIndex); if (is_star != 1) { // set the visibility of the view to GONE view.setVisibility(View.GONE); } return true; } return false; } }
    • 您的光标 c 应该只包含在 COLUMN_order 中只有值 0 或 1 的行。
    【解决方案2】:

    我想我找到了答案... http://enjoyandroid.wordpress.com/2012/03/12/customizing-simple-cursor-adapter/ 我正在努力。也许我错了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      相关资源
      最近更新 更多