必须单击按钮两次才能在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

回到顶部