2017-01-14 6 views
0

私はリストビューに変換されたSQLiteデータベースを持っており、すべて正常に動作しています。しかし、私は今問題に直面しています:リストビューのテキストを変更する

私のデータベースにはstageという名前の列があります。 Stageには0,1,2のいずれかの整数が含まれます。リストビュー項目のレイアウトファイルにはstatusと呼ばれるtextviewがあり、stageの値がこのtextviewに出力されます。しかし、私は0,1または2がtextviewで印刷されることを望んでいない、私は単語で整数を置き換えたいと思う。

たとえば、stageの値が0の場合、ステータスの内容を「hello」にします。そして、ステージの価値が1であれば、私はステータスの内容を「おやすみ」にします。私は複数のことを試みましたが、私はそれを働かせません。

リストビューのコード:

private DBManager dbManager; 

private ListView listView; 

private SimpleCursorAdapter adapter; 

final String[] from = new String[] { DatabaseHelper._ID, 
     DatabaseHelper.IDEA, DatabaseHelper.DESC, DatabaseHelper.STAGE}; 

final int[] to = new int[] { R.id.id, R.id.idea, R.id.desc, R.id.status }; 

dbManager = new DBManager(this); 
dbManager.open(); 
Cursor cursor = dbManager.fetch(); 

listView = (ListView) findViewById(R.id.list_view); 
listView.setEmptyView(findViewById(R.id.empty)); 

adapter = new SimpleCursorAdapter(this, R.layout.activity_view_record, cursor, from, to, 0); 
adapter.notifyDataSetChanged(); 

listView.setAdapter(adapter); 

が、私は感謝事前に、誰かが私を助けることができると思います:)。

+0

スクリーンショットを追加できますか? –

+0

レンダリングをカスタマイズする場合は、アダプターのgetViewをオーバーライドする必要があります。または、SQLクエリーにswitch句を追加して、selectの値を置き換える必要があります。 – njzk2

+0

'私はリストビューに変換されるSQLiteデータベースを持っています** ** NO **。データベースの内容をListViewに表示しています。 「変換」は起こりません。私がここで行うことは、0,1および2(またはそれ以上)の値を持つ別のテーブルを追加することです。そして、テーブルをジョインして、最初のテーブルから必要な列を表示し、他のテーブルの対応するステータスの説明を表示します。 –

答えて

0

をチェックし

int i; 

を取り、この

のように試してみてくださいまたはアダプタ内のbindViewメソッド。

カーソルを返すクエリで値を変更/変換することもできます。線に沿って: - COL1、COL2およびCOLXは、既存の列とCOLXある

SELECT col1, col2, (CASE WHEN colx = 0 THEN 'Hello' ELSE 'GoodMorning' END) AS mynewcolum FROM TABLE; 

変換されるカラムです。

0

すると、値がgetViewメソッドに変換/むしろSimpleCursorAdapterを使用するよりも、カスタムアダプタを実装して、変更される可能性が

if (i==0) { 
    textview.setTe xt("hello"); 
} else if (i==1) { 
    textview.setText("good morning"); 
} 
関連する問題