【问题标题】:Listview populate in androidListview 在 android 中填充
【发布时间】:2012-07-16 21:41:06
【问题描述】:

在我的应用程序中,我有 1 个列表视图,使用 arrayadapter 从数据库中填充数据。

下面是代码:

public void onClick(View v) {
                    // TODO Auto-generated method stub

                      Cursor c = db.gethouseholdTitle();
                      startManagingCursor(c); 
//                   if(cat.equals("Income"))
//                   {  
////                         System.out.println("inside if="+select);
////                         Cursor cin = db.income();
                         String[] fromdes = new String[] {db.KEY_DATE,db.KEY_DESC,db.KEY_INCOME,db.KEY_TOTAL};
                         int[] todes = new int[] {R.id.text1 ,R.id.text3,R.id.text5,R.id.text7};
                         SimpleCursorAdapter notes =
                                    new SimpleCursorAdapter(this, R.layout.columnview, c, fromdes, todes);
                        //  System.out.println("notes="+notes.getCount());
                        //  setListAdapter(notes);    
                           lv.setAdapter(notes);  

                }

但显示错误:

The constructor SimpleCursorAdapter(new View.OnClickListener(){}, int, Cursor, String[], int[]) is undefined

我做错了什么。在此先感谢。我认为我们无法在点击函数中填充光标适配器??

【问题讨论】:

  • 在 onClick 中上下文发生了变化。因此,您必须在输入 **this** 之前输入 YourActivityName。给出 YourActivity 的上下文。

标签: android listview


【解决方案1】:

改变这一行:

SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.columnview, c, fromdes, todes);

进入这个:

SimpleCursorAdapter notes = new SimpleCursorAdapter(MyActvity.this, R.layout.columnview, c, fromdes, todes);

这里的MyActivity 应该是您的活动的实际名称。

同时,我会提请您注意以下来自SimpleCursorAdapter javadoc 的摘录:

此构造函数已弃用。不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2023-04-10
    相关资源
    最近更新 更多