我的项目需要两个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) &&
) .....
答案 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){
...
}