2013-11-23 24 views
0

我有一個包含文本視圖和3個可點擊的圖像視圖的自定義行。 onClick在任何一個ImageView上這個圖片變成另一個。當我更改第一個項目組件時,最後一項生效

我的問題是,當我點擊第1行上的Image1時,圖像在第1行和第9行中也發生了變化,當我點擊第2行時,圖像在第2行和第10行也發生了變化..等等。我不知道爲什麼。

但我認爲它是關於滾動。

這是我的適配器getView()

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View vi = convertView; 
    if (vi == null) { 
      vi = inflater.inflate(R.layout.comprow, null); 
    } 
    TextView text = (TextView) vi.findViewById(R.id.name); 
    text.setText(data.get(position)); 

    return vi; 
} 

這是第一個ImageView的 公共無效一個(視圖v){

RelativeLayout row = (RelativeLayout)v.getParent(); 
    ImageView im1 = (ImageView) row.findViewById(R.id.one); 
    ImageView im2 = (ImageView) row.findViewById(R.id.two); 
    ImageView im3 = (ImageView)row.findViewById(R.id.three); 

    im1.setImageResource(R.drawable.c0);  
    im2.setImageResource(R.drawable.b1); 
    im3.setImageResource(R.drawable.b2); 

    simpleAdpt.notifyDataSetChanged(); 
} 

回答

0

當你不使用的功能的OnClick id,在所有行中更改了重複,因爲您使用的是位置,那麼您必須將id設置爲在getView()中創建的每一行,現在如果您有幾個選擇,則可以使用列表大小的整數數組處理,即默認等於0然後如果喲ü按下一行更改的行的值,然後在顯示圖像中檢查該行的值,如果爲零則默認,否則檢查該值並選擇要顯示的圖像,我希望你能理解我的單詞

+0

不幸的是我不能得到你的解決方案 –

+0

看到我的更新,我希望現在得到它 –

+0

是的,我得到它。但我不認爲它適合我。 正如在我的應用程序中,我禁用了行選擇(當用戶選擇特定行時,我什麼都不做) 當他/她點擊行中imageview的任何圖像時,我會做一些修改。 是的,我的圖像數量有限,每行只有3張圖片。點擊任何一張圖片,我將其替換爲另一張圖片。 –

相關問題