【发布时间】:2020-03-24 16:34:11
【问题描述】:
很抱歉,我再次需要您的帮助。我真的很想自己解决所有这些问题,但是因为我从今年开始只做 Android Coding,所以我还是时不时地不知所措。
我试着做一个时间选择器。如果我在一个新项目中这样做,它会完美运行。但是一旦我将它放入我的“原始应用程序”中,该应用程序就会运行到 View 3,在那里我有 Time Picker。我也可以打开时间选择器。我选择了时间,但是当我单击确定时,它说:不幸的是,应用程序已停止。单击确定后,我跳回到视图 2。我已经尝试重新组织代码并删除了模拟器并创建了一个新的。不管我做什么,它都不起作用。有没有可能,因为我尝试将不同的属性添加到彼此独立学习的应用程序中,所以我在课堂上仍然有错误的顺序?
我认为 TimePickerFragment 应该是正确的,因为选择器可以工作,但在这里我再次添加它:
public class TimePickerFragment 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, android.text.format.DateFormat.is24HourFormat(getActivity()));
}
}
我在下面的类中添加了时间选择器
public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_Main);
Calendar calendar = Calendar.getInstance();
String currentDate = DateFormat.getDateInstance(DateFormat.DATE_FIELD).format(calendar.getTime());
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
String time = format.format(calendar.getTime());
TextView textViewDate = findViewById(R.id.Date);
textViewDate.setText(currentDate);
TextView textView = findViewById(R.id.Time2);
textView.setText(time);
EditText editText = (EditText) findViewById(R.id.Time1);
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getSupportFragmentManager(), "time picker");
}
});
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView textView = (TextView)findViewById(R.id.time);
textView.setText(hourOfDay + ":" + minute);
}
}
【问题讨论】:
标签: java android android-studio