[英]Crashing on startActivity when clicking button
有同样的问题。 该按钮在正确的时间初始化,但由于某种原因,它在单击时崩溃。 xml 文件说 onClick 处理程序缺少相关活动。
xml
<Button
android:id="@+id/start_reg_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="216dp"
android:onClick="onClick"
android:text="@string/need_a_new_account" />
Java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
mRegBtn = (Button) findViewById(R.id.start_reg_btn);
mRegBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent reg_intent = new Intent(StartActivity.this, RegisterActivity.class);
startActivity(reg_intent);
}
});
}
android 编程非常新。 任何帮助表示赞赏
有两种方法可以解决您的问题:
在您的情况下,您已使用此行为 XML 上的按钮声明了 onClick 处理程序:
android:onClick="onClick"
因此,您现在必须在您的活动中创建一个方法名称 onClick() 并在那里执行您的代码,如下所示:
public void onClick(View v) {
Intent reg_intent = new Intent( StartActivity.this, RegisterActivity.class);
startActivity(reg_intent);
}
android:onClick="onClick"
并做你已经做过的事情:
mRegBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent reg_intent = new Intent( StartActivity.this, RegisterActivity.class);
startActivity(reg_intent);
}
});
所以,主要概念是你不能同时使用android:onClick
和setOnClickListener
。 您必须一次使用一个。
android:onClick and `setOnClickListener` can not used simultaneous.
正确使用 android:onClick 可以参考 官方链接
尝试使用getContext()
获取当前上下文并实现为。
public void onClick(View v) {
Intent reg_intent = new Intent(v.getContext(), RegisterActivity.class);
v.getContext().startActivity(reg_intent);
}
并从 xml 文件中定义onClick
或使用View.setOnClickListener
以编程方式定义它。 两者不能共存。
只需从 Xml 中删除 onClick 并尝试再次运行
发现 TextEditinput.= TextInputLayout 的错误,这就是它崩溃的原因。 它也可以通过 onClick 方法或 SetuponClickListener 工作,所以谢谢大家和他们的帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.