XML UI 文件未正确链接到 Android Studio 中的 Java 文件



我通过XML给我的按钮一个OnClick属性(如android:onClick="goToMainActivity")。然而,我总是得到错误"无法解析符号"。

OnClick方法是在Java文件中定义的,但是XML文件没有选择它们。

下面是XML文件(fragment_chorees .XML):

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="20dp"
android:layout_marginTop="50dp"
android:layout_marginHorizontal="5dp">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="<-"
android:textColor="@color/white"
android:background="@null"
app:cornerRadius="20dp"
android:textStyle="bold"
android:onClick="previousWeekAction"
android:textSize="20sp"/>
<TextView
android:id="@+id/monthYearTV"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:text="Feb 2021"
android:textSize="20sp"
android:textAlignment="center"
android:textColor="@color/black"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="->"
android:textColor="@color/white"
android:background="@null"
app:cornerRadius="20dp"
android:textStyle="bold"
android:onClick="nextWeekAction"
android:textSize="20sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="SUN"
android:textColor="@color/dark_orange"
android:textAlignment="center"
android:textSize="16sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="MON"
android:textColor="@color/dark_orange"
android:textAlignment="center"
android:textSize="16sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="TUE"
android:textColor="@color/dark_orange"
android:textAlignment="center"
android:textSize="16sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="WED"
android:textColor="@color/dark_orange"
android:textAlignment="center"
android:textSize="16sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="THUR"
android:textColor="@color/dark_orange"
android:textAlignment="center"
android:textSize="16sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="FRI"
android:textColor="@color/dark_orange"
android:textAlignment="center"
android:textSize="16sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="SAT"
android:textColor="@color/dark_orange"
android:textAlignment="center"
android:textSize="16sp"/>

</LinearLayout>

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/calendarRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Event"
android:textColor="@color/white"
android:background="@null"
app:cornerRadius="20dp"
android:onClick="newEventAction"
android:layout_gravity="center"
android:textSize="16sp"
android:layout_marginTop="20dp"/>
<ListView
android:id="@+id/eventListView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:layout_marginBottom="56dp"/>
</LinearLayout>

这里我是如何链接到Java文件(ChoresFragment.java):

public class ChoresFragment extends Fragment
{
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_chores, container, false);
}

你的活动在哪里?如果你定义了onClick属性,你的activity必须有成员函数定义,像这样:

public void previousWeekAction(View view) {
...
}

最新更新