首页 > 解决方案 > 时间选择器使我的应用程序崩溃并出现错误:E/libprocessgroup: failed to make and chown /acct/uid_10058: Read-only file system

问题描述

很抱歉我再次需要你的帮助。我真的很想自己解决所有这些问题,但是因为从今年开始我只做 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);
    }
}

标签: javaandroidandroid-studio

解决方案


在您的主要课程中这样做,因为它是一个活动而不是片段这是我回购的图片,它会启发你

    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();
          }
    });
}

@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    TextView textView = (TextView)findViewById(R.id.time);
    textView.setText(hourOfDay + ":" + minute);
}
 }

推荐阅读