【问题标题】:set texts from database into textviews将数据库中的文本设置为文本视图
【发布时间】:2013-11-25 16:41:31
【问题描述】:

我有一个问题,我有一个来自我的数据库的数据列表.. 我希望当我单击一个项目时,它会启动新活动并将其余选定项目数据显示到 textviews 中.. 这是我的代码:

userList.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
            Cursor c = dataBase.rawQuery("SELECT FROM"
                +DbHelper.TABLE_NAME+"WHERE"+DbHelper.KEY_ID+"="+arg3, null);
            Intent i = new Intent(getApplicationContext(),BookDetails.class);
            startActivity(i);
            t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_NAME)));
            t2.setText(c.getString(c.getColumnIndex(DbHelper.KEY_AUTHOR)));
            t3.setText(c.getString(c.getColumnIndex(DbHelper.KEY_ISBN)));
            t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_COPIES)));
            t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_INFO)));
        }
    });}

但它不起作用..当我单击项目时,应用程序将停止并退出! 有人能帮助我吗 ???? 还有比这更好的方法吗??

谢谢你

【问题讨论】:

    标签: android eclipse listview android-sqlite onitemclicklistener


    【解决方案1】:

    t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_NAME))+"");要么 t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_NAME)).toString());

    【讨论】:

      【解决方案2】:

      当询问“强制关闭”问题时,请包含来自 logcat 的异常堆栈跟踪。

      这里有SQL语法问题会导致异常:

      Cursor c = dataBase.rawQuery("SELECT FROM"
      +DbHelper.TABLE_NAME+"WHERE"+DbHelper.KEY_ID+"="+arg3, null);
      
      • 您需要指定要选择的列。 SELECT * 选择所有列

      • 您需要在 FROMWHERE 等关键字与表或列名等标识符之间留有空格。

      • 在查询中最好使用?变量绑定而不是硬编码变量值。

      所以,是这样的:

      Cursor c = dataBase.rawQuery("SELECT * FROM "
      +DbHelper.TABLE_NAME+" WHERE "+DbHelper.KEY_ID+"=?", new String[] { arg3 });
      

      另请注意,您将覆盖t1 中的文本两次。但这不会导致异常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多