2016-12-17 7 views
0

私のSqliteデータベースの "次へ"ボタンをコーディングしようとしています。私はそれを働かせたいと思う方法は、数値を入力すると、dbからの項目の1つを再度入力すると、入力された同じ番号のリストの項目が表示されます。しかし、私はそれを次のエントリを持ってくることはできません。これまでのところ私のボタンコードはこのように見えます。しかし、私は無運でそれを構成する無数の方法を試した。助けてください。前もって感謝します!!!アンドロイドの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()) ; 
     } 
    } 
+0

あなたはORDER BYを使用しない限り、クエリの結果がソートされていないです。これは[Cursorメソッド](http://developer.android.com/reference/android/database/Cursor.html)の仕組みではありません。 –

+0

私の知らないことを残念に思っていますが、私はむしろアンドロイドに新しいです。しかし、あなたは私が単にDescの命令を声明に追加する必要があると言っています、それはうまくいくはずですか?私は3つのエントリーを持っています。そして最初と最後に移動を加えたが、私はエントリーを通してスクロールすることはできません。 – mtbrown4ayl

答えて

0

私は、次のエントリにスクロールしながら、オープンカーソルを維持するために、この別のメソッドを追加する必要がありました:

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(); 
          } 
         } 
        }); 
       } 
      } 
     }); 
関連する問題