imagebutton传递引用

时间:2013-11-22 15:51:57

标签: android reference imagebutton

我正在尝试通过索引数组传递图像按钮作为参考。

我以为我可以设置ID,然后传递该ID:

MyButton=(ImageButton) findViewById(R.id.imageButton1);
MyButton.setId(0);

然后在我的onClick中我想传递索引“0”:

MyButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {

    if (MyButton.isSelected()){
                Switch_Ctrl(0, OFF );
        }
});

索引传递给方法:

boolean Switch_Ctrl(char button_num, byte state){

            button_num.setImageResource(R.drawable.switch_off);
            button_num.setSelected(false);
}

我得错误无法解析方法setImageResource。

所以我不能使用id“button_num”。不确定我如何引用ImageButton?

1 个答案:

答案 0 :(得分:0)

您只需存储对按钮的引用并在onClick上进行更改即可。只需在ActivityFragment中将其设为实例变量即可。您可以单独声明一个按钮,然后将其初始化onCreateonActivityCreated(一旦findViewById可用)。例如

private Button myButton;

@Override
protected void onCreate(Bundle savedInstanceState){
    myButton = (Button) findViewById(R.id.button);
    myButton.setOnClickListener(new Button.OnClickListener() {

         public void onClick(View v) {
             changeButtonBackground(v.getId());
         });

     }
 }

//if doing this for multiple butons, check which one
//was pressed and change the background
private void changeButtonBackground(int id){
    if(id == R.id.myButton){
        myButton.setBackground(R.drawable.whatever);
    }
}

另外 - 我不会将我的按钮的ID设置为其他任何类似的东西。你的按钮已经有了一个id,它是你在XML中定义的那个:android:id =“@ + id / whateveritis”。除非您以编程方式创建XML中不存在的视图(例如,如果您在单击此按钮时将TextView添加到某个父布局),则无需定义新ID。