[英]Submit button not emailing collected data from activity_main.xml
[英]Default Button Format on activity_main.xml Causing Crash
我是Android Studio的新手,我正在按照本教程學習編碼。 我將一個按鈕放入我的activity_main.xml中,並使用拖放方法(xml文件的“設計”選項卡)將該按鈕的onClick屬性引用到MainActivity.java文件中的方法buttonOnClick上。 原始代碼如下:
activity_main.xml(省略了無關代碼):
<Button
android:text="@string/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="visible"
android:onClick="buttonOnClick (MainActivity)" />
MainActivity.java:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void buttonOnClick(View v) {
Button button = (Button) v;
button.setText("Click");
}
運行此代碼后,當我單擊按鈕時,它崩潰了。 如果我刪除了onClick屬性的(MainActivity)部分,它會起作用。 我不知道為什么這樣做有效,但確實如此。 也許有人可以告訴我為什么嗎?
應用程序崩潰時收到的錯誤消息如下:
java.lang.IllegalStateException:在視圖類android.support.v7.widget.AppCompatButton上定義的ID為“ button”的android:onClick屬性,在父級或祖先上下文中找不到方法buttonOnClick(MainActivity)(View)
看來(View)是假定的,因此您也不需要要求(MainActivity)。
<Button
android:text="@string/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="visible"
android:onClick="buttonOnClick" />
將android:onClick="buttonOnClick (MainActivity)"
更改為
android:onClick="buttonOnClick"
試試這個:從xml移除android:onClick =“ buttonOnClick(MainActivity)”
<Button
android:text="@string/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="visible" />
用代碼編寫onClick
public class MainActivity extends AppCompatActivity {
public Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button)findViewById(R.id.button);
b1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view) {
b1.setText("Click");
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.