我有以下代碼:變更Android按鈕背景動態在內部類
public class Tab1 extends Fragment {
private String packageName = MainActivity.getStringPackageName();
private int buttonAmount = MainActivity.getButtonAmountTab1();
private Button[] button = new Button[buttonAmount + 1];
private Sound sound;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
sound = MainActivity.getSound();
// Log.i("MyActivity", className);
View rootView = inflater.inflate(R.layout.fragment_tvtotal, container, false);
for (int i = 1; i < buttonAmount + 1; i++) {
String buttonID = "tv_total_sound" + i;
int resID = getResources().getIdentifier(buttonID, "id", packageName);
final int audioID = getResources().getIdentifier(buttonID, "raw", packageName);
button[i] = (Button) rootView.findViewById(resID);
//registerForContextMenu(button[i]);
button[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sound.playSound(audioID);
button[1].setBackgroundResource(R.drawable.button_active);
}
});
}
return rootView;
}
}
現在,而不是改變所述第一按鈕的背景(按鈕[1]),我想改變按鈕的背景被按下。 當我在onClick中使用按鈕[i] ...我得到一個錯誤,我從內部類訪問,它應該被聲明爲final。有沒有辦法做到這一點?
謝謝,它的工作! – Stef 2014-11-23 11:06:14
標記爲已答覆,謝謝;) – asylume 2014-11-24 09:49:50