【问题标题】:Android sqlite: Retrieving Random Data from DatabaseAndroid sqlite:从数据库中检索随机数据
【发布时间】:2013-12-25 19:36:58
【问题描述】:

一直在搜索和使用这里的所有资源,但似乎对我的项目没有任何帮助。

我需要在摇动设备时检索随机数据。

我已经有了抖动检测功能。 我的问题是我无法检索随机数据。

在设备上测试。应用程序崩溃。

mainactivity.java

DataSource DS = new DataSource(this);

public void onShake(float force) {

    // Called when Motion Detected
    Toast.makeText(getBaseContext(), "Motion detected", 
            Toast.LENGTH_SHORT).show();

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            // Do something after 5s = 5000ms
            TextView text = (TextView) findViewById(R.id.textView1);
            text.setText(DS.getRandomQuote());

        }
    }, 2000);


public String getRandomQuote() {

    Cursor c = database.query(MysqLiteHelper.TABLE_COMMENTS,
        new String[] { MysqLiteHelper.COLUMN_COMMENT}, null, null, null, null, "ORDER BY RANDON() LIMIT 1");

    if(c.moveToFirst())
        return c.getString(c.getColumnIndex(MysqLiteHelper.COLUMN_COMMENT));
    else 
       return "nothing";
}

已阅读:

How can select random data from database and display in textview?

How can select random data from database and display in textview?

但对我不起作用

【问题讨论】:

  • “不起作用”是什么意思?

标签: android database random


【解决方案1】:
  1. 您要查找的函数是RANDOM() 而不是RANDON()

  2. query() 将其 ORDER BYLIMIT 参数放在单独的 args 中,没有 ORDER BYLIMIT 关键字。

【讨论】:

  • 对不起,只是一个拼写错误,将其更改为 RANDOM() 它会使应用程序崩溃。
  • @FanBoy-designAnd-concept 对于崩溃,请始终在问题中包含来自 logcat 的异常堆栈跟踪。这是满足“什么是“不起作用”是什么意思的问题的一种方法。
  • 得到了我认为是我的查询的错误。 NullPointerException - Cursor cursor = database.query(MySQLiteHelper.TABLE_COMMENTS, allColumns, null, null, null, null, null);当我记录此查询时,它为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 2018-04-18
  • 2011-09-09
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
相关资源
最近更新 更多