繁体   English   中英

时间选择器-不显示对话框

[英]Time Picker - no Dialog showing

晚上好,
今天,我正试图在Android Studio中构建一个时间选择器,为此,我观看了CodingInFlow的视频。 区别在于,我正在Fragment中构建时间选择器,这意味着我无法使用getSupportFragmentManager 好吧,我没事,但是在单击按钮之后,时间选择器应该什么也不显示,时间选择器没有显示,就像按钮甚至没有OnClick一样。 我认为这可能与getSupportFragmentManager这个事情有关。 我想给你看我的代码。

AlarmFragment.java:

    @Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    final View fraAla = inflater.inflate(R.layout.fragment_alarm, container, false);


    Button bAlarm = fraAla.findViewById(R.id.buttonAlarm);
    bAlarm.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            DialogFragment zeitwaehlen = new AlarmTimePicker();
            zeitwaehlen.show(getFragmentManager(), "time picker");
        }
    });
    return inflater.inflate(R.layout.fragment_alarm, container, false);
}

@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    TextView txtAlarm = getActivity().findViewById(R.id.textViewAlarm);
    txtAlarm.setText("Stunde: " + hourOfDay + " Minute: " + minute);

}

AlarmTimePicker.java:

    @NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
    Calendar k = Calendar.getInstance();
    int stunde = k.get(Calendar.HOUR_OF_DAY);
    int minute = k.get(Calendar.MINUTE);

    return new TimePickerDialog(getActivity(),(TimePickerDialog.OnTimeSetListener) getActivity(), stunde, minute, DateFormat.is24HourFormat(getActivity()));
}

fragment_alarm.xml:

    <TextView
    android:id="@+id/textViewAlarm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/buttonAlarm"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="31dp"
    android:text="time"
    android:textSize="30sp" />

<Button
    android:id="@+id/buttonAlarm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="open time picker" />

当我尝试编写getSupportFragmentManager ,应用程序崩溃。 我也尝试这样做,就像这里的家伙说的那样: 如何在片段中访问getSupportFragmentManager()? 但是由于我是编码新手,所以我并没有真正理解他的意思。
FragmentManager fragManager = myContext.getSupportFragmentManager();
我了解他创建了一个新变量,但是当我尝试执行相同的操作时(当然,我更改了myContext ),我不知道如何稍后在代码中调用此变量。 因为当我键入变量的名称时,它带有红色下划线。

oncreatview()方法中,您将返回重复的布局。 您需要返回fraAla而不是fraAla inflater.inflate(R.layout.fragment_alarm, container, false);

onCreatView()方法中,您返回return fraAla而不是fraAla inflater.inflate(R.layout.fragment_alarm, container, false);

因为在createview上创建了两个视图引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM