2011-10-13 32 views
0

我顯示數據庫中的數據,如文本和圖像,但我的代碼不工作。我爲我的項目使用this tutorial。這是我的java類:從SimpleCursorAdapter.ViewBinder數據庫顯示文本和圖像

public class PepakPostView extends ListActivity { 
    protected TextView postOne; 
    protected TextView postTwo; 
    //protected view picture; 
    protected ListAdapter adapter; 
    protected int subcatId; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.post); 
     subcatId = getIntent().getIntExtra("SUBCATEGORY_ID", 0); 
     SQLiteDatabase db = (new DatabaseHelper(this)).getWritableDatabase(); 
     Cursor cursor = db.rawQuery("SELECT _id, subcatId, postOne, postTwo, picture FROM posts WHERE subcatId = ?", 
       new String[]{""+subcatId}); 

     SimpleCursorAdapter pepak = new SimpleCursorAdapter(
       this, 
       R.layout.post_list, 
       cursor, 
       new String[] {"postOne", "postTwo", "picture"}, 
       new int[] { R.id.postOne, R.id.postTwo, R.id.picture }); 

      pepak.setViewBinder(new MyViewBinder()); 

    } 


    @Override 
     public boolean onCreateOptionsMenu(android.view.Menu menu) { 
      // TODO Auto-generated method stub 
      super.onCreateOptionsMenu(menu); 
      MenuInflater blowUp = getMenuInflater(); 
      blowUp.inflate(R.menu.coll_menu, menu); 
      return true; 
     } 

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      // TODO Auto-generated method stub 
     switch(item.getItemId()){ 
     case R.id.about: 
      Intent i = new Intent("com.pepakbahasajawa.ABOUT"); 
      startActivity(i); 
      break; 
     case R.id.exit: 
       finish(); 
       break; 
     } 
     return false; 
     } 

} 

MyViewBinder.java

public class MyViewBinder implements ViewBinder { 

    public boolean setViewValue(View view, Cursor cursor, int columnIndex) { 
     int viewId = view.getId(); 
     switch(viewId) { 

     /* 
     case R.id.postOne: 

       TextView postOne = (TextView) view; 
       postOne.setText(Cursor.getString(columnIndex)); 

      break; 

      case R.id.postTwo: 

       TextView postTwo = (TextView) view; 
       postTwo.setText(Cursor.getString(columnIndex)); 

      break; 
*/ 
      case R.id.picture: 

       ImageView pictureIcon = (ImageView) view; 
       int picture = cursor.getInt(columnIndex); 
       switch(picture) { 
        case 1: 
         pictureIcon.setImageResource(R.drawable.icon); 
        break; 
        case 2: 
         pictureIcon.setImageResource(R.drawable.home_normal); 
        break; 
       } 

      break; 
     } 
     return false; 
    } 
} 

如何解決這一問題?

回答

0

在ListView中不使用pepak變量。 ListView是空的。

setListAdapter(pepak); //?