XML Design Code:
Unable to start activity ComponentInfo{com.example.app/com.example.app.MainPermission}: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
I tried to rectify but i have confusion about that code.
''' <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
tools:context=".MainPermission">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#701198">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/sym" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="Apply Permission"
android:textColor="@color/white" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon_id"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:src="@drawable/sym" />
<TextView
android:id="@+id/txt_apply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="Apply Permission"
android:textColor="@android:color/white" />
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date" />
<LinearLayout
android:id="@+id/txt_date"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@drawable/border"
tools:ignore="ExtraText">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingStart="10dp"
android:text="Enter date" />
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:src="@drawable/atendance" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="From time">
</TextView>
<LinearLayout
android:id="@+id/txt_from_time"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@drawable/border"
tools:ignore="DuplicateIds">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingStart="10dp"
android:text="Enter time" />
<ImageView
android:layout_width="25dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:src="@drawable/time"></ImageView>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To Time"></TextView>
<LinearLayout
android:id="@+id/txt_to_time"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@drawable/border">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingStart="10dp"
android:text="Enter time"></TextView>
<ImageView
android:layout_width="25dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:src="@drawable/time"></ImageView>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Total Hours Taken" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="0 Hrs"
android:textColor="@color/black"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Description" />
<EditText
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="10dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>'''
Activity Class:
I tried to rectify but i have confusion about that code.
'''import androidx.appcompat.app.AppCompatActivity;
public class MainPermission extends AppCompatActivity {
TextView Date_view, TxtFromTime, TxtToTime;
@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_permission);
getSupportActionBar().hide();
Date_view = findViewById(R.id.txt_date);
TxtFromTime = findViewById(R.id.txt_from_time);
TxtToTime = findViewById(R.id.txt_to_time);
Date_view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(MainPermission.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
String selectedDate = sdf.format(calendar.getTime());
Date_view.setText(selectedDate);
}
}, year, month, day);
datePickerDialog.show();
}
});
TxtFromTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
TimePickerDialog timePickerDialog = new TimePickerDialog(MainPermission.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.getDefault());
String selectedTime = sdf.format(calendar.getTime());
TxtFromTime.setText(selectedTime);
}
}, hour, minute, true);
timePickerDialog.show();
}
});
TxtToTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
TimePickerDialog timePickerDialog = new TimePickerDialog(MainPermission.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.getDefault());
String selectedTime = sdf.format(calendar.getTime());
TxtToTime.setText(selectedTime);
}
}, hour, minute, true);
timePickerDialog.show();
}
});
}
}'''