2012-12-31 55 views
2

我有一個微調和一個圖像按鈕。 微調器加載了我從包管理器獲取的標籤。 當用戶選擇一個新標籤時,imagebutton應該更新它的drawable。從標籤獲取圖標並將其加載到imagebutton?

這裏是到目前爲止我的代碼:

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long arg3) { 

    Spinner spinner = (Spinner) findViewById(R.id.spinner); 
    spinner.setOnItemSelectedListener(this); 
    PackageManager pm = getPackageManager(); 
    Drawable icon = (Drawable) (parent.getItemAtPosition(position)); 
    ImageButton image = (ImageButton) findViewById(R.id.appIcon); 
    image.setImageDrawable(icon.loadIcon(pm)); 

}  

在 「loadIcon」 有錯誤消息:

的方法loadIcon(PackageManager)是未定義的類型可繪製對象

任何提示或想法我如何才能得到這個工作?

+0

這個'image.setImageDrawable(icon.loadIcon(PM));'應該是'image.setImageDrawable(圖標);'因爲你已經從包管理器採取drawbles –

+0

從不同的標籤應用? – Vasudev

+0

是的,它們來自不同的應用程序,我用ArrayList 將它們加載到微調器。 – berkley

回答

1

重新編碼像這樣。它將工作

Spinner spinner = (Spinner) findViewById(R.id.spinner); 
spinner.setOnItemSelectedListener(this); 
PackageManager pm = getPackageManager(); 
Drawable icon = (Drawable) (parent.getItemAtPosition(position)); 
ImageButton image = (ImageButton) findViewById(R.id.appIcon); 
image.setBackgroundDrawable(icon); 
+0

對不起,代碼似乎在Eclipse中是乾淨的,但在設備上崩潰... ** java.lang.ClassCastException:java.lang.String不能轉換爲android.graphics.drawable.Drawable ** – berkley

+1

@berkley更改ArrayList 到ArrayList Bucks

相關問題