两个用于不同目的的片段点击视图



我的项目需要两个onClick事件。一个用于图像浏览,另一个用于提交。当我添加两个onClick事件时,生成错误">onClick(View("已经在"com"中定义。当我搜索这个问题的解决方案时,建议将两种具有相同参数的方法组合在一起,但是如何?

public class News_Yeb extends Fragment implements OnClickListener {
    Button bt_register;
    TextInputLayout til_name, til_username;
    ImageView iv_profile;
    String name, username, password, email, mobile, profile, confirm;
    RequestQueue requestQueue;
    boolean IMAGE_STATUS = false;
    Bitmap profilePicture;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View RootView = inflater.inflate(R.layout.news_yeb, container, false);
    til_name = RootView.findViewById(R.id.til_name_reg);
    til_username = RootView.findViewById(R.id.til_username_reg);
    bt_register = RootView.findViewById(R.id.bt_register);
    iv_profile = RootView.findViewById(R.id.im_profile);
    bt_register.setOnClickListener(this);
    iv_profile.setOnClickListener(this);
    return RootView;
}

public void onClick(View iv_profile) {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("image/*");
    startActivityForResult(intent, 1000);
}
@Override
public void onClick (View bt_register){
    name = til_name.getEditText().getText().toString();
    username = til_username.getEditText().getText().toString();
    password = til_password.getEditText().getText().toString();
    if (
                    validateName(name) &&
            ) .....

不要使用单独的 onClick 方法。使用此方法:

1( 通过 View.OnClickListener 实现类

2( 将侦听器应用于您的按钮.setOnClickListener(this( 或 yourImage.setOnClickListener(this(;

3(实现点击方法:

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
              case R.id.yourButton1:
                //do your stuff
                break;
              case R.id.yourImage:
                //do your stuff
                break;
         }
    }
在您可能

拥有的其中一个活动中

android:onClick = "onClick"

例如,将其中一个替换为:

android:onClick = "onClick2"

并将相应的onClick方法重命名为onClick2:

public void onClick(View iv_profile){
    ...
}
public void onClick2 (View bt_register){
    ...
}

最新更新