java - Android Java 时间选择器对话框

标签 java android dialog timepicker

嘿,我正在尝试制作一个 TimepickerDialog。但当我按下“设置时间”按钮时,应用程序就崩溃了。这是代码。

主要 Activity :

package com.wifitimer;
import java.text.DateFormat;
import java.util.Calendar;
import android.app.Activity;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.widget.TimePicker;

public class MainActivity extends Activity {
DateFormat formatDateTime=DateFormat.getDateTimeInstance();
Calendar dateTime=Calendar.getInstance();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void chooseTime(){
    new TimePickerDialog(this, t, dateTime.get(Calendar.HOUR_OF_DAY), dateTime.get(Calendar.MINUTE), true).show();
}

TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
        dateTime.set(Calendar.MINUTE,minute);
    }
};
}

我是否缺少某些权限或其他内容?

这是请求的 logcat:

04-15 13:42:24.564: D/libEGL(31887): loaded /system/lib/egl/libEGL_mali.so
04-15 13:42:24.589: D/libEGL(31887): loaded /system/lib/egl/libGLESv1_CM_mali.so
04-15 13:42:24.594: D/libEGL(31887): loaded /system/lib/egl/libGLESv2_mali.so
04-15 13:42:24.599: D/(31887): Device driver API match
04-15 13:42:24.599: D/(31887): Device driver API version: 10
04-15 13:42:24.599: D/(31887): User space API version: 10 
04-15 13:42:24.599: D/(31887): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 
04-15 13:42:24.654: D/OpenGLRenderer(31887): Enabling debug mode 0
04-15 13:42:28.524: D/AndroidRuntime(31887): Shutting down VM
04-15 13:42:28.524: W/dalvikvm(31887): threadid=1: thread exiting with uncaught exception (group=0x416922a0)
04-15 13:42:28.544: E/AndroidRuntime(31887): FATAL EXCEPTION: main
04-15 13:42:28.544: E/AndroidRuntime(31887): java.lang.IllegalStateException: Could not find a method chooseTime(View) in the activity class com.wifitimer.MainActivity for onClick handler on view class android.widget.Button with id 'timeBtn'
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.view.View$1.onClick(View.java:3678)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.view.View.performClick(View.java:4211)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.view.View$PerformClick.run(View.java:17267)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.os.Handler.handleCallback(Handler.java:615)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.os.Looper.loop(Looper.java:137)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.app.ActivityThread.main(ActivityThread.java:4898)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at java.lang.reflect.Method.invokeNative(Native Method)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at java.lang.reflect.Method.invoke(Method.java:511)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at dalvik.system.NativeStart.main(Native Method)
04-15 13:42:28.544: E/AndroidRuntime(31887): Caused by: java.lang.NoSuchMethodException: chooseTime [class android.view.View]
04-15 13:42:28.544: E/AndroidRuntime(31887):    at java.lang.Class.getConstructorOrMethod(Class.java:460)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at java.lang.Class.getMethod(Class.java:915)
04-15 13:42:28.544: E/AndroidRuntime(31887):    at android.view.View$1.onClick(View.java:3671)
04-15 13:42:28.544: E/AndroidRuntime(31887):    ... 11 more

谢谢

最佳答案

我认为您正在从 xml 布局文件 onClick 属性中调用 ChooseTime(),您需要将方法签名更改为此

public void chooseTime(View view){

    new TimePickerDialog(this, t, dateTime.get(Calendar.HOUR_OF_DAY), dateTime.get(Calendar.MINUTE), true).show();

}

关于java - Android Java 时间选择器对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16015381/

相关文章:

java - 我可以将 Activity 转换为 float 窗口吗?

android - 如何解决 Android 中的 NullPointerException 错误?

java - Android获取DialogBox数组中的一个值

java - 如何在对话框的列中显示结果?

java - 是否优化过一次使用的变量定义?

java - Android - 将位图转换为要包含在多部分请求中的字符串

java - 如何在Android Studio中使用OpenCV检测和计数随机大小的白色物体

android - Android中的EditText控件

qt - 如何在 QML 中获取对话框红色 'x' 关闭按钮信号

java - 这个错误是什么意思 : java. lang.NullPointerException