【问题标题】:Sqlite Next button in androidandroid中的Sqlite Next按钮
【发布时间】:2017-05-02 23:58:00
【问题描述】:

我正在尝试为我的 Sqlite 数据库编写一个“下一步”按钮。我希望它工作的方式是在输入一个数字时,它是数据库中的条目之一,如果再次按下它会在列表中显示输入的相同给定数字的条目。但是我不能让它调出下一个条目。到目前为止,我的按钮代码如下所示。但是,我尝试了无数种方法来配置它,但没有运气。请帮忙。提前谢谢!!!

public void onClick(View view) {
    if (view == btnNext) {

        Cursor c = db.rawQuery("SELECT * FROM number WHERE meter='" + editText6.getText() + "'", null);
        if (editText6.getText().toString().trim().length() >= 0) {
            c.getPosition();
            c.moveToPosition(+1);
            idNumber.setText(c.getString(0));
            editText5.setText(c.getString(6));
            editText4.setText(c.getString(5));
            editText3.setText(c.getString(4));
            editText2.setText(c.getString(3));
            editText.setText(c.getString(2));
            textView4.setText(c.getString(7));
            status.setText(c.getString(8));
            while (c.moveToNext()) ;
        }
    }

【问题讨论】:

  • 查询结果未排序,除非您使用 ORDER BY。这不是Cursor methods 的工作方式。
  • 对不起,我的无知,但我对 android 还很陌生。但是你是说我只需要在语句中添加一个 Order by Desc 就可以了?我有 3 个条目,如果询问我添加移动到第一个或最后一个,它会显示第一个和最后一个,但我似乎无法通过条目滚动。

标签: android database sqlite button next


【解决方案1】:

我必须添加这个单独的方法以在滚动到下一个条目时保持光标打开:

    final Button nextBtn = (Button) findViewById(R.id.btnNext);
        nextBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (editText6.getText().toString().trim().length() == 0) {
                    Toast ToastMessage1 = Toast.makeText(getApplicationContext(), "Please" +
                            " Enter Meter Number\nThen Press Lookup Meter", Toast.LENGTH_LONG);
                    ToastMessage1.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL, 0, 0);
                    View toastView1 = ToastMessage1.getView();
                    toastView1.setBackgroundResource(R.drawable.shape9);
                    ToastMessage1.show();
                } else {
                    if (c.getPosition() >= 1) {
                        c.moveToPrevious();
                        idNumber.setText(c.getString(0));
                        //Must maintain this order listed below in order for clear field on focus to work properly.
                        editText6.setText(c.getString(1));
                        editText5.setText(c.getString(6));
                        editText4.setText(c.getString(5));
                        editText3.setText(c.getString(4));
                        editText2.setText(c.getString(3));
                        editText.setText(c.getString(2));
                        //To here-list order.
                        date.setText(c.getString(7));
                        status.setText(c.getString(8));
                        etAddress.setText(c.getString(9));
                    }
                    if (c.getPosition() == 0) {
                        c.close();
                        Toast ToastMessage = Toast.makeText(getApplicationContext(), "      Last Entry Recorded      ", Toast.LENGTH_LONG);
                        ToastMessage.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL, 0, 0);
                        View toastView = ToastMessage.getView();
                        toastView.setBackgroundResource(R.drawable.shape9);
                        ToastMessage.show();
                    }
                    final Button clearBtn = (Button) findViewById(R.id.btnClear);
                    clearBtn.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v2) {
                            if (v2 == clearBtn) {
                                c.close();
                                clearText();
                            }
                        }
                    });
                }
            }
        });

【讨论】:

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