-1

Я хочу использовать CalenderView в своей деятельности, я также пытаюсь очистить свой проект, но эта проблема не решена.Как я могу использовать LinearLayout с CalendarView?

Это мой код:

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> 

ActivityClass:

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 для решения, но не смог найти его.

+0

'R.id.calendarView' - неправильный идентификатор вашего календаря, на самом деле у вашего календаря нет идентификатора – tyczj

+1

Если вы включили' LinearLayout', тогда присвойте ему идентификатор 'calendarView', а затем посмотрите который просматривает и передает его в «CalendarView», когда ошибка говорит «не может быть применена к CalendarView», как вы думаете, в чем проблема? –

+0

@DavidMedenjak Спасибо за ваш ответ. Я хочу знать, как эта проблема может быть решена? – Omore

ответ

1

Попробуйте с приданием андроида: идентификатор в CalenderView и карту, что идентификатор с CalenderView в ActivityClass.

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

сначала назначить идентификатор calendarView, как показано ниже.

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

, чем найти свой включенный вид, как показано ниже.

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

CalendarView = (CalendarView) includedView.findViewById (R.id.calendarView1);