2012-04-15 10 views
1

アンドロイドにSQliteを使用してテーブルを作成しました。性別(男性/女性)の列がデータベースにあります。私がしたいのは、性別の種類を確認し、その種類に応じて男性/女性のアイコンを表示することです。私はsetViewBinder()を使用していますが、これはカラムインデックス(正確にはわからないカラム)を渡しますが、私たちはこれを使って性別カラムをチェックすることができます。これを行うより良い方法はありますか?ViewBinderを使用してデータベースにアイコンを表示

 ListView lv=(ListView)findViewById(R.id.mylist); 


     dbh = new DatabaseHelper(this); 

      c = dbh.getReadableDatabase().rawQuery("SELECT _id, " + 
        DatabaseHelper.NAME + 
      ", " + DatabaseHelper.LASTNAME + 
      ", " + DatabaseHelper.ans2 + ", " + DatabaseHelper.SEX + 
      " FROM " + 
      DatabaseHelper.TABLE_NAME, null); // initializing 


    String[] dataFrom ={DatabaseHelper.NAME, DatabaseHelper.LASTNAME, DatabaseHelper.ans2, DatabaseHelper.SEX}; 
    int[] dataTo = {R.id.name, R.id.value1, R.id.value2, R.id.icon}; 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.row, c, dataFrom, dataTo); 
    adapter.setViewBinder(new ViewBinder(){ 


     public boolean setViewValue(View view, Cursor cursor, 
       int columnIndex) { 
      if (view.getId() == R.id.icon) { 
       int sex = cursor.getInt(columnIndex); 
       String s = String.valueOf(sex); 
       if (s == "male") { 
        ((ImageView) view).setImageResource(R.drawable.male); 
       } else if (s == "female"){ 
        ((ImageView) view).setImageResource(R.drawable.female); 
       } 

       return true;  
      } else { 
       return false; 
      } 

     } 

    }); 
lv.setAdapter(adapter); 

答えて

2

あなたが受け取るためbindViewは、あなたが簡単にあなたのデータを設定/確認することができます方法:

  • あなたがあなたのデータを置くことが可能な実際の位置
  • ビューに位置カーソル
2
if (s == "male") 

のためにその変更
if (s.equals("male")) 
関連する問題