片段中的两个onClick视图用于不同的目的

时间:2018-04-09 17:50:37

标签: android android-fragments onclicklistener

我的项目需要两个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) &&

            ) .....

2 个答案:

答案 0 :(得分:2)

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

1)通过View.OnClickListener实现类

2)将监听器应用于yourButton.setOnClickListener(this)或yourImage.setOnClickListener(this);

3)实现onClick方法:

    @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;
         }
    }

答案 1 :(得分:0)

您可能有的其中一项活动

android:onClick = "onClick"

例如,

替换其中一个
android:onClick = "onClick2"

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

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

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