当我在应用程序上单击“注册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应用程序崩溃没有失败
答案 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){
}