1

我使用自定義AdapterlistView中顯示圖像和文本。單擊按鈕時,我想用下一張圖像替換圖像。但是它只是在列表,而不是replacing.Below是我的代碼片段:自定義列表視圖不會取代視圖

法在自定義視圖從源碼

public void BlockData() {  
    dataBase = dbHelper.getReadableDatabase(); 
    Cursor mCursor = dataBase.rawQuery("SELECT * FROM "+ dbHelper.TABLE_NAME + " WHERE " + dbHelper.KEY_HNUM+ "=" + id, null); 

     if (mCursor.moveToFirst()) { 
      do { 
       category_Id.add(mCursor.getString(mCursor.getColumnIndex(dbHelper.KEY_HNUMM)));    
      } while (mCursor.moveToNext());  
      lv.setAdapter(new BlockAdapter(getApplicationContext(),category_Id,prgmImages)); 

      stopManagingCursor(mCursor); 
      mCursor.close(); 
     } 
    } 

設置抓取圖像

public View getView(final int pos, View child, final ViewGroup parent) { 
    final Holder mHolder; 
    LayoutInflater layoutInflater; 
    if (child == null) { 
     layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     child = layoutInflater.inflate(R.layout.secondlist, null); 
     mHolder = new Holder(); 
     mHolder.txt_id = (TextView) child.findViewById(R.id.testingg); 
     mHolder.tx_img = (ImageView) child.findViewById(R.id.sac_img); 
     mHolder.butnxt = (Button) child.findViewById(R.id.button2); 
     mHolder.butpre = (Button) child.findViewById(R.id.button1); 
     child.setTag(mHolder); 
    } else { 
     mHolder = (Holder) child.getTag(); 
    } 

    mHolder.txt_id.setText(category_Id.get(pos)); 

    if (pos == 0) { 
     imgs = getResources().obtainTypedArray(R.array.sac_imgs); 

     mHolder.tx_img.setImageResource(imgs.getResourceId(id - 1, -1)); 
     imgs.recycle(); 
    }else{ 
     imgs = getResources().obtainTypedArray(R.array.sac_imgs); 
      mHolder.tx_img.setImageResource(imgs.getResourceId(pos - 1, -1)); 
     imgs.recycle(); 
    }  
    mHolder.butnxt.setOnClickListener(new OnClickListener() {      
     @Override 
     public void onClick(View v) { 
      id++; 
      BlockData(); 
     } 
    });        
    return child; 
} 
protected ViewGroup findViewById(int txtViewPop) { 
    return null; 
} 
public class Holder { 
    TextView txt_id; 
    Button butnxt; 
    Button butpre; 
    TextView txt_fDate; 
    ImageView tx_img;   
} 

}

我應該怎麼做每次按鈕被點擊時更換看法?我希望有人能指導我在正確的direction.thanks提前

回答

1

我應該怎麼做,以取代圖每次點擊一個按鈕?

相反ListView中添加適配器的新對象的做得一樣:

創建BlockAdapter的方法來清除所有數據:

public void refeshAdapterData(List category_Id,<Data_Type> prgmImages) 
    { 
     category_Id.clear(); 
     // clear prgmImages 
     // add data to adapter 
     category_Id.addAll(category_Id); 
     // Add prgmImages 
     notifyDataSetChanged(); 
    } 

2.呼叫refeshAdapterDataBlockData()方法:

refeshAdapterData(category_Id,prgmImages); 
stopManagingCursor(mCursor); 
mCursor.close();