2017-07-29 11 views
0

私はアンドロイドのプロジェクトに取り組んでいます。私のsqliteデータベースでは、これらの質問に接続されているいくつかの質問と回答とtextview IDを持っています。私のXMLでは "textA"、 " textB "、" textBLABLA "。私のデータベースにもこれらのIDがあります。データベースからtextview IDを取得し、それを使用

データベースからtextview IDを取得するには、このSQLコードを使用します。

private void getText(int id) { 
Cursor getTextView = myDatabase.rawQuery("SELECT textView FROM questions WHERE id = ?", new String[] {String.valueOf(id)}); 
int textIndex = getTextView.getColumnIndex("textView"); 

値を取得できますが、この値を使ってテキストビューを編集するにはどうすればよいですか?例えば、その背景色を変更する;

questionTextView.setBackgroundColor(Color.BLACK); 
+0

これらのIDをデータベースに格納する方法のコードを表示できますか? –

+0

私はSQLiteのためのDBブラウザを介して手動でそれらを入れています。古いone.Iでそれを変更するアンドロイドデバイスマネージャを使用して私は値を得ることができますどのように私はそれらを使用することができます知っているのを知らない – MePengusta

+0

このID ) 'TextView questionTextView =(TextView)findViewById(idFetchedFromDb); ' このオブジェクトを使用してテキストビューを編集します。 –

答えて

0

あなたはちょうど列の値ではなく、列のインデックスを取得しました。

private void getText(int id) { 
Cursor getTextView = myDatabase.rawQuery("SELECT textView FROM questions WHERE id = ?", new String[] {String.valueOf(id)}); 
int textIndex = getTextView.getColumnIndex("editText"); // this gives you the column index you requested 

// AD THIS AFTER ABOVE CODE 
if(getTextView.moveToNext()){ 
    int textViewId = getTextView.getInt(textIndex); // this gives you the value from the column index you provide and and the row you on which the current cursor is 
    TextView questionTextView = (TextView) findViewById(textViewId); 
    /* UPDATE */ 
    questionTextView.setBackgroundColor(Color.Black); 
} 

フェッチされた列インデックスから値を取得する必要があります。

+0

私はthis.Nowを行って、そのテキストビューの背景色を で変更したいquestionTextView.setBackgroundColor Color.BLACK); しかし、それはクラッシュします。何が問題なのでしょうか? – MePengusta

+0

あなたのログ猫は何を言いますか?ヌルポインタ? –

+0

はい。 java.lang.NullPointerException:NULLオブジェクト参照で仮想メソッド 'void android.widget.TextView.setBackgroundColor(int)'を呼び出そうとしました – MePengusta

関連する問題