2016-12-17 51 views
0

我想爲我的Sqlite數據庫編寫一個「下一個」按鈕。我希望它的工作方式是在輸入一個數字時,如果再次按下數據庫中的一個條目,它會在列表中輸入相同給定數字的條目。但是我無法得到它來提出下一個條目。到目前爲止,我的按鈕代碼如下所示。然而,我已經嘗試過無數種方式來配置它沒有運氣。請幫忙。提前致謝!!!Sqlite在android的下一個按鈕

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()) ; 
     } 
    } 
+0

查詢結果是無序。這不是[Cursor方法](http://developer.android.com/reference/android/database/Cursor.html)的工作方式。 –

+0

對不起我的無知,但我比較新的android。但是你是否說我只需要將Desc添加到聲明中,它應該起作用?我有3個參賽作品,並且如果問我添加了第一個或最後一個動作,它會顯示第一個和最後一個,但我似乎無法通過條目滾動。 – mtbrown4ayl

回答

0

我不得不添加這種單獨的方法,以保持遊標打開,同時滾動到下一個條目:除非你用ORDER BY

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(); 
          } 
         } 
        }); 
       } 
      } 
     });