2012-02-27 38 views
1

在我的列表視圖中,我想使它能夠更改我製作的圖像視圖中的drawable,但每次運行它時都會出現錯誤。SetImageDrawable在列表視圖

ImageView Player; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Player = (ImageView)findViewById(R.id.bob); 
    setListAdapter(new ArrayAdapter<String>(this, R.layout.pointguards, PointGuards)); 
    final ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView parent, View view, int position, long id) { 
        String item = (String) lv.getAdapter().getItem(position); 
        //decide how to launch `Intent` depending on `item` 
        if (item == "bob"){ 
       Intent intent = new Intent("com.example.nba.playerinfo"); 
       startActivity(intent); 
       Player.setImageDrawable(R.drawable.joe); 
     } 
    }; 

這運行完美,但是當我添加setImageDrawable它崩潰。 編輯:我想改變的drawable的目的是我要去

+0

請說明你是如何想的圖像工作:你想要什麼時候改變圖片?當列表項被點擊?或者你想在整個列表加載時爲每個列表項加載一次圖像?是每個列表項目中的圖像還是您試圖將它加載到其他地方? – koopaking3 2012-02-27 23:08:54

+0

圖像在drawables文件夾中,當前是bob,當我單擊bob時,我想將其更改爲joe。 – user1236269 2012-02-27 23:21:49

+0

所以你想要在列表項中顯示圖像,並且當單擊該列表項時,它會更改圖像? – koopaking3 2012-02-27 23:25:40

回答

0

您需要設置圖像繪製在Activity,你與你的Intent啓動,而不是在ListView:你應該設置。您可以通過intent.putExtras("name", name);傳遞名稱。然後在Activity使用setImageDrawable基於您從Intent額外獲得的名稱。

編輯:從IntentActivity檢索數據:

Intent intent = getIntent(); 
String name = intent.getStringExtra("name"); 

然後像這樣設置播放器ImageView

if (name.equalsIgnoreCase("joe") 
    Player.setImageDrawable(R.drawable.joe); 
+0

所以提及你能告訴我代碼是怎樣得到額外的嗎? – user1236269 2012-02-28 00:42:05

+0

看到我上面編輯 – koopaking3 2012-02-28 01:47:01

+0

非常感謝你,一切正常:) – user1236269 2012-02-28 02:30:47

0

你沒有設置你的內容視圖。

ImageView player; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_list_layout); // <-- setting content view 
    player = (ImageView)findViewById(R.id.bob); 
. 
. 
. 
+0

對不起,我忘了提及,我想改變的圖片是在我要去的另一個意圖,而且,這並不工作,因爲內容已經在陣列適配器 – user1236269 2012-02-27 22:55:38