首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClickListener当前目标

ClickListener当前目标
EN

Stack Overflow用户
提问于 2011-02-05 08:55:28
回答 2查看 1.5K关注 0票数 1
代码语言:javascript
复制
EditText etHomePhone = (EditText)findViewById(R.id.et_pi_home_phone);
EditText etMobilePhone = (EditText)findViewById(R.id.et_pi_home_phone);

etHomePhone.setOnClickListener(showPopUpClickListener);
etMobilePhone.setOnClickListener(showPopUpClickListener);


    private View.OnClickListener showPopUpClickListener = new View.OnClickListener() {

            public void onClick(View v) {

              /* I like to get both EditText.getText().toString() value in this one ClickListener 
 is it Possible, there is something in ActionScript call event.currentTarget...
*/  

            }
        };
EN

回答 2

Stack Overflow用户

发布于 2011-02-05 09:03:10

如果您将etHomePhone和etMobilePhone变量声明为final,并在同一方法中定义OnClickListener内联,那么您可以直接引用这些变量。如下所示:

代码语言:javascript
复制
final EditText etHomePhone = (EditText)findViewById(R.id.et_pi_home_phone);
final EditText etMobilePhone = (EditText)findViewById(R.id.et_pi_home_phone);

View.OnClickListener showPopUpClickListener = new View.OnClickListener() {

    public void onClick(View v) {
        String home = etHomePhone.getText().toString();
        String mobile = etMobilePhone.getText().toString();
        // Do something with home and mobile
    }
};

etHomePhone.setOnClickListener(showPopUpClickListener);
etMobilePhone.setOnClickListener(showPopUpClickListener);

编辑:

如果你只想获得被点击的视图的文本,而不是两个都被点击,那么你可以只转换它通过onClick提供的视图( EditText v):

代码语言:javascript
复制
public void onClick(View v) {
    EditText editText = (EditText)v;
    String phoneNumber = editText.getText().toString();
    // Do something with phoneNumber
}
票数 0
EN

Stack Overflow用户

发布于 2011-02-05 09:26:09

这是一个代码片段,所以我看不到上下文,但您可以构造一个OnClickListener来捕获活动中的所有事件。首先,您的活动需要实现OnClickListener接口:

代码语言:javascript
复制
public class YourActivity extends Activity implements OnClickListener {...

在OnCreate()方法中,注册每个应响应单击的UI元素,如下所示:

代码语言:javascript
复制
yourObject.setOnClickListener(this);

接下来,对于活动的onClick()方法,使用R.id创建一个开关结构,如下所示:

代码语言:javascript
复制
@Override
public void onClick(View view) {
   switch(view.getId()){
   case R.id.A_UI_Element:
      //do what you need for this element
      break:
   case R.id.A_Different_UI_Element:
      //do what you need for this element
      break;
   //continue with cases for each element you want to be clickable
   }
}

不要忘记每个案例结束时的休息时间。

我在代码中注意到一件事:两个editText声明引用相同的资源。这为同一个UI元素提供了两个句柄,而不是两个不同的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4904381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档