public class MainActivity extends AppCompatActivity {
ListView listView;
Button buttonForCP;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonForCP =(Button) findViewById(R.id.buttonForCP);
img = findViewById(R.drawable.ic_img);//this problem
// ||||||||||||||||||||||||||
buttonForCP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonForCP.setBackground(img);
}
});
}
由于某種原因無法讀取 xml 影像,編譯器寫入“型別 id 的預期資源”我用谷歌搜索沒有找到幫助
uj5u.com熱心網友回復:
我假設backButtonZer是 a Button,您需要替換R.drawable.ic_img為R.id.backButtonZer
backButtonZer = findViewById(R.id.backButtonZer);
更新
要將背景設定為Button您可以使用的setBackgroundResource方法:
buttonForCP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonForCP.setBackgroundResource(R.drawable.ic_img);
}
});
uj5u.com熱心網友回復:
此代碼不起作用,因為findViewById在您的膨脹布局中按 id 查找視圖。但是您正在嘗試查找可繪制資源 id 并將其分配給一個完全沒有意義的 ImageView 物件。
ImageView img = findViewById(R.drawable.ic_img);
同樣使用此代碼,您將 ImageView 設定為按鈕背景,這也沒有任何意義。您可以將影像/資源/可繪制物件設定為背景。不是 ImageView。
buttonForCP.setBackground(img);
如果您的問題中有很多遺漏點,但也許您可以嘗試這樣的事情:
buttonForCP.setBackground(ContextCompat.getDrawable(context, R.drawable.ic_img);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/481314.html
上一篇:Xml追加/添加新節點php
