1

カーソルを使用して、データベース テーブルから特定の値を取得します。タイプ「TEXT」の列から取得します。列の標準値は空白ですが、特定のボタンをクリックすると、クエリによって「true」が追加されるという考え方です。

String var = c.getString(1); //use cursor to get value

しかし、これを文字列と比較するために使用したい場合は、fe

if(var.equals("true")) {
//do something crazy
}

DB に何も入力されていない項目でエラーが発生します。実際に「true」が入力されているフィールドのみがエラーになりません。c.getString(1).toString(); を試しました。しかし、これはうまくいきません...何かアイデアはありますか?

4

5 に答える 5

1

チェックは以下のようになります

if("true".equals(var)) {

手に入らないようにNullPointerException

Cursor#getString Javadocで提案されているように

結果と、列の値が null の場合、または列の型が文字列型でない場合にこのメソッドが例外をスローするかどうかは、実装によって定義されます。

データベースから値をチェックする前に、Cursor #isNullまたはCursor#moveToFirstを使用する必要があります。

 if(!c.isNull(1))
 //Get Value here

Or 

if(c.moveToFirst())
 //get value here
于 2012-09-24T13:25:53.160 に答える
1

あなたの問題はキャスティングにはありません (LogCat を読む必要があります)。フェッチする前に、まずカーソルにデータが含まれていることを確認する必要があります。

String var = "";    
if (c.moveToFirst())
var = c.getString(1);

次に、チェックを行います。

if(var.equals("true")) { //do something crazy } 
于 2012-09-24T13:27:26.413 に答える
1
if("true".equals(var)) {
  //do something crazy
}
于 2012-09-24T13:26:32.950 に答える
1

次のようにします:

if(var != null && !var.equals(""))

このようにして、ヌル文字列と空の文字列の両方を制御しています..

于 2012-09-24T13:25:02.767 に答える
0
 firstly check the 
 if(var.trim.equals("")) {
    //do your task
 }
于 2012-09-24T13:28:04.813 に答える