TextView不会从登录名将我重定向到我的注册活动

时间:2019-04-03 05:35:07

标签: java android

当我在应用程序上单击“注册txt”时,它崩溃了,我已经尝试了几乎所有可以找到的东西,包括XML onClick

可点击的XML onClick

public class LoginActivity extends AppCompatActivity
{
    TextView sign_up_text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        sign_up_text = (TextView) findViewById(R.id.sign_up);
        sign_up_text.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                startActivity(new Intent(LoginActivity.this, RegisterActivity.class));

            }
        });

    }

}

xml:

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/sign_up_text"
        android:textSize="18dp"
        android:gravity="center"
        android:layout_alignParentBottom="true"
        android:id="@+id/sign_up"
        android:clickable="true"
        android:onClick="onClick"
        />

Android应用程序崩溃没有失败

2 个答案:

答案 0 :(得分:4)

您在xml中具有 android:onClick="onClick" 属性。并且您还已经在Java中定义了 sign_up_text.setOnClickListener

您一次只能做一件事。

1。

如果要使用 sign_up_text.setOnClickListener ,只需从xml文件中删除 android:onClick="onClick" 。( {{3} }

2。

如果要使用 android:onClick="onClick" ,则应在活动中定义新方法,例如:( Reference

public void onClick(View view) {

}

答案 1 :(得分:3)

第一个解决方案是从XML中删除android:onClick="onClick",据我了解,崩溃的原因是在XML中按钮单击定义的onClick上调用的函数名称为"onClick"也是setOnClickListner

的替代功能
@Override
        public void onClick(View v){
         //todo your code
        }

第二个解决方案是,如果您在XMl中使用onClick来更改其他函数名称,而不是覆盖函数onClick,例如:

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/sign_up_text"
        android:textSize="18dp"
        android:gravity="center"
        android:layout_alignParentBottom="true"
        android:id="@+id/sign_up"
        android:clickable="true"
        android:onClick="myFunction"
        />

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

}

private myFunction(View view){
}