我正在使用 PreferenceFragmentCompat 做一個應用程序,我需要向我的首選項添加一個選項 TimePicker,但是當我單擊此選項時我的應用程序崩潰了。這是我的代碼:時間偏好:import android.app.Dialog;import android.app.TimePickerDialog;import android.os.Bundle;import android.text.format.DateFormat;import androidx.annotation.NonNull;import androidx.fragment.app.DialogFragment;import java.util.Calendar;public class TimePreference extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); return new TimePickerDialog(getActivity(), (TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, DateFormat.is24HourFormat(getActivity())); }}設置片段:import android.os.Bundle;import androidx.fragment.app.DialogFragment;import androidx.preference.Preference;import androidx.preference.PreferenceFragmentCompat;import com.sstu.studentcalendar.R;import com.sstu.studentcalendar.Service.TimePreference;public class SettingsFragment extends PreferenceFragmentCompat{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.prefs); Preference preference = (Preference)getPreferenceManager().findPreference("timeset"); if (preference != null) { preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { DialogFragment timePicker = new TimePreference(); timePicker.show(getFragmentManager(), "time picker"); return true; } }); } } @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { }}我究竟做錯了什么?有什么簡單的方法可以從 PreferenceFragment 顯示時間選擇器嗎?
添加回答
舉報
0/150
提交
取消