必须单击按钮两次才能在Android Studio中工作
因此,我正在创建一个应用程序,并且一直困扰着我的一件小事情是,我必须单击按钮两次才能使其工作。必须单击按钮两次才能在Android Studio中工作
这是我的代码,我看不出它什么毛病:
public void signUpButtonClickAction(View v){ Button signUpButtonClick = (Button) findViewById(R.id.signUpButton);
signUpButtonClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Signup.class));
}
});
}
XML代码为我的按钮:
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/signUps"
android:id="@+id/signUpButton"
android:layout_marginBottom="38dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:onClick="signUpButtonClickAction"/>
这可能是一个小的修复,但即使我能” t发现此错误
编辑:对不起,但为什么我的问题是“倒票”?这是一个真正的问题,很容易被混淆或难以理解的人谁是新的Android开发...
回答:
解决方案
删除线android:onClick="signUpButtonClickAction"
并添加
Button signUpButtonClick = (Button) findViewById(R.id.signUpButton); signUpButtonClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Signup.class));
}
});
到您的活动的onCreate
方法或您的片段的onCreateView
方法。
替代解决方案
可替换地,代码改变此
public void signUpButtonClickAction(View v) { startActivity(new Intent(MainActivity.this, Signup.class));
}
说明
在XML中线android:onClick="signUpButtonClickAction"
是造成signUpButtonClick.setOnClickListener内部()调用,所以你不必再次在signUpButtonClickAction
中设置onClickListener。
初始化多个按钮
private void initializeButtons() { Button signUpButtonClick = (Button) findViewById(R.id.signUpButton);
signUpButtonClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Signup.class));
}
});
Button anotherButton = (Button) findViewById(R.id.anotherButton);
anotherButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("TAG", "Clicked on another button!");
}
});
}
现在只需拨打initializeButtons()
从活动的onCreate
方法。
回答:
问题是,您设置了两次onClick操作。在你的xml代码中,你只需要在你的按钮上设置一个onClick(),你不需要在signUpButtonClickAction(View v)
中设置setOnClickListener()。你有两个选择:
离开xml文件就像是和里面signUpButtonClickAction(View v)
做:
public void signUpButtonClickAction(View v){ startActivity(new Intent(MainActivity.this, Signup.class));
}
OR
删除XML文件的onclick:
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/signUps"
android:id="@+id/signUpButton"
android:layout_marginBottom="38dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
/>
并在您的活动中执行此操作:
Button yourButton = (Button) findViewById(R.id.signUpButton); yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Signup.class));
}
});
回答:
原因的问题是:onclick()
和onClickListener
字面上是一样的!而且你正在实施这两个,最终的结果是你需要按两次按钮才能开始活动!
- See this question for more info
FIX:
你的问题的解决方案是:
1:
public void signUpButtonClickAction(View v) {
startActivity(new Intent(MainActivity.this, Signup.class));
}
2:
Button signUpButtonClick = (Button) findViewById(R.id.signUpButton); signUpButtonClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Signup.class));
}
});
回答:
作为mcwise所述 机器人:的onClick = “signUpButtonClickAction” 和 signUpButtonClick.setOnClickListener(新View.OnClickListener(){ @Override 公共无效的onClick(视图v){ startActivity(new Intent(MainActivity.this,Signup.class)); } }); 做同样的事情。所以你必须去与其中一个。有两个是造成问题
以上是 必须单击按钮两次才能在Android Studio中工作 的全部内容, 来源链接: utcz.com/qa/260796.html