установить начальное значение времени пикера - PullRequest
1 голос
/ 29 марта 2020

Я хочу установить начальное значение для времени пикера

import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TimePicker
import androidx.annotation.RequiresApi


class MainActivity : AppCompatActivity() {
@RequiresApi(Build.VERSION_CODES.M)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    var periodTimePiker: TimePicker = findViewById(R.id.period_timePicker)
    periodTimePiker.setIs24HourView(true)
    periodTimePiker.hour = 10
    periodTimePiker.minute = 10

}
}

и xml

 <TimePicker
            android:id="@+id/period_timePicker"
            android:layout_width="291dp"
            android:layout_height="137dp"
            android:layout_gravity="center_vertical"
            android:timePickerMode="spinner" />
        />

при использовании periodTimePiker.hour = 10 periodTimePiker.minute = 10 Остановка приложения

the cra sh из android sy

 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test.appTest, PID: 10550
java.lang.NoSuchMethodError: android.widget.TimePicker.setHour
    at com.test.appTest.MainActivity.onCreate(MainActivity.kt:20)
    at android.app.Activity.performCreate(Activity.java:5264)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1099)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
    at android.app.ActivityThread.access$800(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5421)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:979)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
    at dalvik.system.NativeStart.main(Native Method)

Я попробовал periodTimePiker.hour и setHour

1 Ответ

1 голос
/ 29 марта 2020

setHour и setMinute Требуется Api - API 23. Вы, вероятно, используете его на более низкой версии, поэтому он аварийно завершился. Вы можете использовать устаревший метод для более низких версий.

    periodTimePiker.setIs24HourView(true)
    if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
        periodTimePiker.hour=5
        periodTimePiker.minute=16
    }else{
        periodTimePiker.currentHour=5
        periodTimePiker.currentMinute=16
    }
...