Activity和XML无法在Android Studio中同步,我收到错误:未解析引用:android,工具栏,done_fab,日期_p等

9vw9lbht  于 2023-02-10  发布在  Android
关注(0)|答案(1)|浏览(103)

我的活动不同步与其布局xml。我真的不知道为什么编码似乎可以。我是一个初学者开发。
这是我在Android Studio中使用Kotlin的活动:

代码:

package com.pkndegwa.mycarmaintenance

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.work.Data
import androidx.work.ExistingWorkPolicy.REPLACE
import androidx.work.OneTimeWorkRequest
import androidx.work.WorkManager
import kotlinx.android.synthetic.service_list_item.*
import com.google.android.material.snackbar.Snackbar.LENGTH_LONG
import com.google.android.material.snackbar.Snackbar.make
import com.pkndegwa.mycarmaintenance.NotifyWork.Companion.NOTIFICATION_ID
import com.pkndegwa.mycarmaintenance.NotifyWork.Companion.NOTIFICATION_WORK
import java.lang.System.currentTimeMillis
import java.text.SimpleDateFormat
import java.util.*
import java.util.Locale.getDefault
import java.util.concurrent.TimeUnit.MILLISECONDS

class AlarmActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.service_list_item)

        userInterface()
    }

    private fun userInterface() {
        setSupportActionBar(toolbar)

        val titleNotification = getString(R.string.notification_title)

        done_fab.setOnClickListener {
            val customCalendar = Calendar.getInstance()
            customCalendar.set(
                date_p.year, date_p.month, date_p.dayOfMonth, time_p.hour, time_p.minute, 0
            )
            val customTime = customCalendar.timeInMillis
            val currentTime = currentTimeMillis()
            if (customTime > currentTime) {
                val data = Data.Builder().putInt(NOTIFICATION_ID, 0).build()
                val delay = customTime - currentTime
                scheduleNotification(delay, data)

                val titleNotificationSchedule = getString(R.string.notification_schedule_title)
                val patternNotificationSchedule = getString(R.string.notification_schedule_pattern)
                make(
                    service_card,
                    titleNotificationSchedule + SimpleDateFormat(
                        patternNotificationSchedule, getDefault()
                    ).format(customCalendar.time).toString(),
                    LENGTH_LONG
                ).show()
            } else {
                val errorNotificationSchedule = getString(R.string.notification_schedule_error)
                make(service_card, errorNotificationSchedule, LENGTH_LONG).show()
            }
        }
    }

    private fun scheduleNotification(delay: Long, data: Data) {
        val notificationWork = OneTimeWorkRequest.Builder(NotifyWork::class.java)
            .setInitialDelay(delay, MILLISECONDS).setInputData(data).build()

        val instanceWorkManager = WorkManager.getInstance(this)
        instanceWorkManager.beginUniqueWork(NOTIFICATION_WORK, REPLACE, notificationWork).enqueue()
    }
}

这是我的layout.xml。此布局已由两个活动使用,即"ServiceListAdapter"和"AlarmActivity"

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/service_card"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginHorizontal="8dp"
    android:layout_marginVertical="4dp"
    android:backgroundTint="#E9E9ED"
    android:clickable="true"
    android:focusable="true"
    android:minHeight="@dimen/button_min_height"
    app:cardElevation="1dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/services_heading_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_margin="12dp"
                android:layout_weight="0"
                android:importantForAccessibility="no"
                android:src="@drawable/ic_baseline_build_circle_24" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/services"
                    android:textAllCaps="false"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    android:textSize="16sp" />

                <TextView
                    android:id="@+id/services_done_list"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAllCaps="false"
                    android:textSize="14sp"
                    tools:text="Oil Filer, Spark Plugs, Battery" />

            </LinearLayout>

            <ImageView
                android:id="@+id/services_expand_view"
                android:layout_width="32dp"
                android:layout_height="32dp"
                android:layout_margin="12dp"
                android:layout_weight="0"
                android:contentDescription="@string/expand_more_button"
                android:src="@drawable/ic_baseline_expand_more_24" />
        </LinearLayout>

        <com.google.android.material.divider.MaterialDivider
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/services_details_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingHorizontal="6dp"
            android:paddingTop="0dp"
            android:paddingBottom="8dp"
            android:visibility="gone"
            app:layout_constraintEnd_toStartOf="@+id/services_left_layout"
            app:layout_constraintStart_toStartOf="@+id/services_left_layout">

            <LinearLayout
                android:id="@+id/services_left_layout"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="8dp"
                android:orientation="vertical"
                app:layout_constraintEnd_toStartOf="@id/services_right_layout"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/service_date"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    android:textSize="16sp" />

                <TextView
                    android:id="@+id/service_date_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAllCaps="false"
                    android:textSize="14sp"
                    tools:text="01 Nov 2022" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="24dp"
                    android:text="@string/current_mileage"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    android:textSize="16sp" />

                <TextView
                    android:id="@+id/current_mileage_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAllCaps="false"
                    android:textSize="14sp"
                    tools:text="2,000 km" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="24dp"
                    android:text="@string/next_service_mileage"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    android:textSize="16sp" />

                <TextView
                    android:id="@+id/next_service_mileage_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAllCaps="false"
                    android:textSize="14sp"
                    tools:text="4,000 km" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/services_right_layout"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="8dp"
                android:orientation="vertical"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@id/services_left_layout"
                app:layout_constraintTop_toTopOf="parent">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/next_service_date"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    android:textSize="16sp" />

                <TextView
                    android:id="@+id/next_service_date_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAllCaps="false"
                    android:textSize="14sp"
                    tools:text="01 Mar 2023" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="24dp"
                    android:text="@string/total_cost"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    android:textSize="16sp" />

                <TextView
                    android:id="@+id/total_cost_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAllCaps="false"
                    android:textSize="14sp"
                    tools:text="1,500 KSH" />

            </LinearLayout>

            <TextView
                android:id="@+id/service_notes_title_text_view"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="24dp"
                android:text="@string/notes"
                android:textAppearance="?attr/textAppearanceBody2"
                android:textColor="@color/black"
                android:textSize="16sp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/services_left_layout" />

            <TextView
                android:id="@+id/service_notes_text_view"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:textAllCaps="false"
                android:textSize="14sp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/service_notes_title_text_view"
                tools:text="Testing out the notes appearance" />

            <!--            This section is to create our alarm from different page since Examiner-->
            <!--            want the user to separate the alarm from the add service -->

            <EditText
                android:id="@+id/titleET"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/service_notes_text_view"
                android:hint="Title for your notification"
                tools:context=".ui.AlarmActivity"
                android:autofillHints="Which Car" />

            <EditText
                android:id="@+id/messageET"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="You can set your own notification here"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/titleET"
                tools:context=".ui.AlarmActivity"
                android:autofillHints="what service" />

            <DatePicker
                android:id="@+id/date_p"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="-30dp"
                android:layout_marginRight="-30dp"
                android:layout_weight="1"
                android:calendarViewShown="false"
                android:datePickerMode="spinner"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@id/messageET"
                tools:context=".ui.AlarmActivity"/>

            <TimePicker
                android:id="@+id/time_p"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="-30dp"
                android:layout_marginRight="-30dp"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                android:timePickerMode="spinner"
                app:layout_constraintTop_toBottomOf="@id/date_p"
                tools:context=".ui.AlarmActivity"/>

            <Button
                android:id="@+id/done_fab"
                android:layout_marginTop="20dp"
                android:layout_gravity="center"
                android:text="schedule_notification"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@id/time_p"
                tools:context=".ui.AlarmActivity"/>

            <LinearLayout
                android:id="@+id/services_actions_container"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="end|center_vertical"
                android:orientation="horizontal"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/done_fab">

                <Button
                    android:id="@+id/edit_service_button"
                    style="@style/Widget.MaterialComponents.Button.TextButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginHorizontal="4dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="4dp"
                    android:padding="2dp"
                    android:text="@string/edit"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    app:drawableTopCompat="@drawable/ic_baseline_edit_24" />

                <Button
                    android:id="@+id/delete_service_button"
                    style="@style/Widget.MaterialComponents.Button.TextButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginHorizontal="2dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="4dp"
                    android:padding="2dp"
                    android:text="@string/delete"
                    android:textAppearance="?attr/textAppearanceBody2"
                    android:textColor="@color/black"
                    app:drawableTopCompat="@drawable/ic_baseline_delete_24" />

            </LinearLayout>

        </androidx.constraintlayout.widget.ConstraintLayout>

    </LinearLayout>

</com.google.android.material.card.MaterialCardView>
yyyllmsg

yyyllmsg1#

onCreate之前,您需要初始化所有小部件,如
按钮完成_制造;//在JAVA中
私有lateinit变量done_fab:按钮//在Kotlin中
//在此添加其他
setContentView之后,您需要初始化名称如下的同一小部件
完成_工厂=查找视图按ID(R. ID.完成_工厂);//在java中
完成_工厂=查找视图按Id(R. id.完成_工厂)//在Kotlin中
//在此添加其他
它将准备好在整体活动课中使用。

相关问题