[英]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.