使用Build->构建APK,我尝试将我的应用安装到手机中。一切正常,包括模拟器上的按钮。
然而,当我尝试在手机上使用它时,按下按钮会使我的手机崩溃。浮动操作按钮有效,但不起作用
我试着注释掉链接到按钮的startActivity函数,但它仍然崩溃。 任何可能的原因?
很抱歉,如果它有点模糊,但我不确定问题的根源是什么。
我尝试将backToMainScreen方法设置为空,但应用程序仍然崩溃,因此我认为这不是java代码的问题。
导致问题的一个页面
public class AddExercise extends AppCompatActivity {
private ArrayList<Exercise> exList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_exercise);
exList = MainActivity.loadData();
}
void backToMainScreen(View target){
Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
MainActivity.saveData(exList);
startActivity(myIntent);
finish();
}
void addExercise(View target){
EditText etNewEntry = (EditText) findViewById(R.id.newEntry);
String newEntry = etNewEntry.getText().toString();
if (!newEntry.isEmpty()) {
Exercise newExercise = new Exercise(newEntry);
exList.add(newExercise);
}
backToMainScreen(target);
}
}
以下是该页面的XML代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/popupWindow">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/exInput"
android:layout_above="@+id/newEntry"
android:gravity="center"/>
<EditText
android:layout_width="200sp"
android:layout_height="wrap_content"
android:id="@+id/newEntry"
android:layout_above="@+id/buttons"
android:layout_alignLeft="@+id/buttons"
android:layout_alignStart="@+id/buttons"
android:inputType="textAutoComplete"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttons"
android:layout_centerInParent="true"
android:orientation="horizontal">
<Button
android:layout_width="100sp"
android:layout_height="wrap_content"
android:id="@+id/ok"
android:text="@string/ok"
android:onClick="addExercise"
/>
<Button
android:layout_width="100sp"
android:layout_height="wrap_content"
android:id="@+id/cancel"
android:text="@string/cancel"
android:onClick="backToMainScreen"
/>
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:0)
要使public
正常工作,您的目标函数应为public void backToMainScreen(View target){}
public void addExercise(View target){}
。
df
答案 1 :(得分:0)
为了使其正常工作,该方法必须是公共的,并接受View作为其唯一参数。 请在代码中公开您的方法,以便单击按钮。
阅读文档 https://developer.android.com/reference/android/widget/Button.html