Android:获取触发onclick事件的元素

3

这是我的代码:

ImageButton ibtnCherry;
ImageButton ibtnSelected;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.setup);

    ibtnCherry = (ImageButton)findViewById(R.id.ibtnCherry);

    ibtnCherry.setOnClickListener(this);
}

点击事件:

@Override
public void onClick(View view) {
    ibtnSelected = ??????????;
    Intent sdintent = new Intent(Intent.ACTION_PICK);
    sdintent.setType("image/*");
    sdintent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(sdintent, GlobaleVariablen.SD_REQUEST);
}

我的问题是,我需要像“ibtnSelected = ibtnCherry”这样的东西出现在带问号的那一行中,但是动态地,所以当另一个按钮(例如ibtnTmp)触发相同的onClick事件时,ibtnTmp会保存在ibtnSelected中。

有没有可能在onClick事件中获取触发它的元素?


你知道 onClick 中的 view 参数是什么吗? - MJB
哦... * 手掌捂脸 * 对不起,伙计们... 我以为我知道它是什么并搜索了类似于 "view.getElement()" 的东西。但是它是 "(ImageView)view" ... 不管怎样,还是谢谢 :) - Prexx
你应该从文档中查找onclick方法的声明,不要做其他事情 ;) - MJB
1个回答

2
只需使用ibtnSelected = view;即可。:-)

1
附加说明:设置一个检查,例如 if (view.getID() == R.id.ibtnCherry) { <doYourStuff> },以避免在您的程序发展到多个视图具有此OnClickListener设置的情况下出现意外。 - Bondax
1
你应该将View强制转换为ImageButton,即ibtnSelected =(ImageButton)view - Adrian C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接