将初始值设置为时间选择器
set initial value to time piker
我想给time piker设置初始值
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
申请停止
来自 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.access0(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
setHour
和 setMinute
RequiresApi 是 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
}
我想给time piker设置初始值
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 申请停止
来自 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.access0(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
setHour
和 setMinute
RequiresApi 是 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
}