2014-03-24 43 views
1

我的代碼有問題。當你點擊列表中的一個項目時,它應該改變顯示在文本旁邊的圖像。但是,當我點擊時沒有任何變化。更改圖片點擊Android列表查看

我在做什麼錯?

public class ChangeImage extends ListActivity { 

boolean state1 = true; 
boolean state2 = false; 
boolean state3 = false; 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    String[] values = new String[] { 
      "ListItem1", 
      "ListItem2", 
      "ListItem3"}; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      R.layout.change_image, R.id.label, values); 
    setListAdapter(adapter); 
} 

@Override 
public void onListItemClick(ListView l, View v, int position, long id){ 
    if(state1){ 
     ImageView arrowView=(ImageView) findViewById(R.id.labelimage); 
     arrowView.setImageResource(R.drawable.icon1);} 
    else if(state2){ 
     ImageView arrowView=(ImageView) findViewById(R.id.labelimage); 
     arrowView.setImageResource(R.drawable.icon2);} 
    else if(state3){ 
     ImageView arrowView=(ImageView) findViewById(R.id.labelimage); 
     arrowView.setImageResource(R.drawable.icon3);} 
    } 
}  

謝謝您的解答^^

+1

根據您發佈的代碼,** **狀態1始終是真實的,並** state2 **和** state3 **始終爲false。這將導致箭頭視圖始終設置爲R.drawable.icon1。圖像的默認圖標是什麼? – anthonycr

+0

默認圖標是icon3 – user3410806

+0

這是您所有活動的代碼嗎?嘗試把print語句放在每個** if if語句中的onListItemClick方法中,看看它們是否被執行過,可能是因爲你在代碼的其他地方將所有布爾值設置爲false。 – anthonycr

回答

0

設置和重置布爾標誌正確,並更改畫面採用了觸摸操作...

if(state1) { state3=false;state1=false;state2=true; }

+0

我不明白你的答案。你能詳細一點嗎? – user3410806

+0

使用此代碼:ImageView imageView =(ImageView)lView.getChildAt(position).findViewById(R.id.checkbox); imageView.setImageResource(R.drawable.checkbox); – prakash

+0

當我嘗試使用此代碼時,出現此錯誤:lView無法解析。 – user3410806

0

使用此。

public void onListItemClick(ListView l, View v, int position, long id){ 

    switch (position) { 
     case 0: 
     ImageView imageView=(ImageView) findViewById(R.id.labelimage); 
     imageView.setImageResource(R.drawable.icon2); 
     break; 
     case 0: 
     ImageView arrowView=(ImageView) findViewById(R.id.labelimage); 
     imageView.setImageResource(R.drawable.icon3); 
     break; 
     case 0: 
     ImageView arrowView=(ImageView) findViewById(R.id.labelimage); 
     imageView.setImageResource(R.drawable.icon1); 
     break; 
    default: 
     break; 
    } 

}  
+0

您的解決方案不起作用。 Eclipse不能編譯,因爲你不能有重複的情況。當我嘗試更改這些案例時,它並沒有達到我想要的應用程序的要求。當我點擊第二和第三位時,它切換了第一張圖片。當用戶點擊第1項時,我希望圖像變成圖標2,當他再次點擊時,我希望它變成圖標3.就像Cut The Rope用糖果做的一樣。當你點擊糖果時,它變成了甜甜圈。當你再次點擊時,它會變成一個蛋糕。這正是我想要做的。 – user3410806