如何使用 CalendarView 投射 LinearLayout?

How can I cast LinearLayout with CalendarView?

我想在我的 activity 上使用 CalenderView,我也尝试清理我的项目,但这个问题没有解决。

这是我的代码:

Cal_view.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <CalendarView
        android:layout_width="match_parent"
        android:layout_height="264dp" />

</LinearLayout> 

Main.xml:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.malik.auealert.HistoryActivity">

    <include
        android:id="@+id/calendarView"
        layout="@layout/cal_view" />

</RelativeLayout>

活动类:

public CalendarView c;
// public TextView t;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_history);

    // LinearLayout parent = (LinearLayout) View v;
    /* ***ERROR Appear on here***: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.CalendarView */
    c = (CalendarView) findViewById(R.id.calendarView);
    //t = (TextView) findViewById(R.id.message);

    c.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {

        }
    });

我搜索了 Google 解决方案,但找不到。

尝试将 android:id 提供给 CalenderView 并将该 ID 映射到 CalenderViewActivityClass.

<CalendarView
        android:id="@+id/calendarView"
        android:layout_width="match_parent"
        android:layout_height="264dp" />

首先将 id 分配给 calendarView,如下例所示。

<CalendarView android:id="@+id/calendarView1" android:layout_width="match_parent" android:layout_height="264dp" />

然后找到您包含的视图,如下所示。

View includedView = findViewById(R.id.calendarView);

日历视图 = (日历视图) includedView.findViewById(R.id.calendarView1);