从单独活动

时间:2016-07-13 03:35:14

标签: java android

我有一个日历活动。当用户选择日期时,我希望日历下的TextView显示用户为该日期存储的所有事件。在TextView下面是一个按钮,它将用户带到他们创建事件的活动。事件创建活动上的按钮使用fileOutputStream来保存包含输入信息的txt文件。我的问题是将这些信息读入Calendar活动的TextView。我为读取编写了代码,但是当我尝试将其指向由EventCreateActivity上的fileOutput创建的目录时,我收到错误“EventCreateActivity不是封闭类”。我相信它是一个封闭的类,因为它有嵌套类,对吗?我能在这里做什么需要最少量的重组?

这是我的CalendarActivity:

public class CalendarActivity extends AppCompatActivity {

CalendarView calendar;
Button createEvent;
public static String createEventDate;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_calendar);

    calendar = (CalendarView)findViewById(R.id.calendar);
    calendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener(){
        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth){
            createEventDate = (month+"."+dayOfMonth+"."+year);
            createEvent.setText("Create Event for "+createEventDate);
            File directory = EventCreateActivity.this.getFilesDir().getAbsoluteFile();
            File[] dateFile = directory.listFiles();
            if (dateFile.length > 0){
                fillEventList();
            }else{
                noEventToday();
            }
        }
    });

    createEvent = (Button)findViewById(R.id.eventCreateButton);
    createEvent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent toEventCreateActivity = new Intent(CalendarActivity.this, EventCreateActivity.class);
            startActivity(toEventCreateActivity);
        }
    });
}

public void fillEventList (){
    TextView eventList = (TextView)findViewById(R.id.eventList);
    try {
        String message = createEventDate;
        FileInputStream fileInput = openFileInput(message);
        InputStreamReader inputStreamReader = new InputStreamReader(fileInput);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        StringBuffer stringBuffer = new StringBuffer();

        while ((message = bufferedReader.readLine())!=null){
            stringBuffer.append(message+"/n");
        }
        eventList.setText(stringBuffer.toString());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public void noEventToday(){
    TextView eventList = (TextView)findViewById(R.id.eventList);
    eventList.setText("Nothing scheduled for today.");
}
}

这是我的EventCreateActivity:

public class EventCreateActivity extends AppCompatActivity {

String textViewText = CalendarActivity.createEventDate;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_event_create);

    TextView titleTextView = (TextView)findViewById(R.id.titleTextView);
    titleTextView.setText("Create event for "+textViewText);

    Button createEventButton = (Button)findViewById(R.id.saveEvent);
    createEventButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            buttonSaves();
            Intent toCalendarActivity = new Intent(EventCreateActivity.this, CalendarActivity.class);
            EventCreateActivity.this.startActivity(toCalendarActivity);
        }
    });
}

public void buttonSaves () {

    TimePicker timePicker = (TimePicker)findViewById(R.id.timePicker);

    EditText entryEvent = (EditText)findViewById(R.id.entryEvent);
    EditText entryLocation = (EditText)findViewById(R.id.entryLocation);
    EditText entryCrew = (EditText)findViewById(R.id.entryCrew);

            final String timeHour = timePicker.getCurrentHour().toString();
            final String timeMinute = timePicker.getCurrentMinute().toString();;
            final String event = entryEvent.getText().toString();
            final String location = entryLocation.getText().toString();
            final String crew = entryCrew.getText().toString();

    try{
        FileOutputStream saveNewEvent1 = openFileOutput(textViewText, MODE_WORLD_READABLE);
        OutputStreamWriter saveNewEvent2 = new OutputStreamWriter(saveNewEvent1);
        try {
            saveNewEvent2.write(timeHour);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            saveNewEvent2.write(timeMinute);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            saveNewEvent2.write(event);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            saveNewEvent2.write(location);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            saveNewEvent2.write(crew);
        } catch (IOException e) {
            e.printStackTrace();
        }

        Toast.makeText(getBaseContext(), "Roger Roger", Toast.LENGTH_LONG).show();

    }catch(FileNotFoundException e){
        e.printStackTrace();
    }

            Log.i("info","The event is: "+timeHour+timeMinute+event+location+crew);

        }
    }

0 个答案:

没有答案