안드로이드 리니어 레이아웃을 다른 액티비티로 보내려면 어떻게 해야 하나요?

조회수 516회

지금 과제로 앱을 만들고 있는데, 추가하려는 기능 중에 새로운 창에서 버튼을 누르면 기존 창에 버튼을 추가시키는 형태로 만들고 있습니다.

그런데 리니어 레이아웃이 Null이 반환되어서 오류가 납니다.

어떻게 해야 오류가 안 나게 작성할 수 있을까요

`public class create_file_Activity extends AppCompatActivity {

Context context;
LinearLayout main_layout;

EditText create_file_title, create_file_content;
Button create_file_btn_date, create_file_btn_time, create_file_btn_cancle, create_file_btn_confirm;

TextView time_tv, date_tv;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.create_file);
    setTitle("일정 추가");

    create_file_title = (EditText) findViewById(R.id.create_file_title);
    create_file_content = (EditText) findViewById(R.id.create_file_content);

    create_file_btn_date = (Button) findViewById(R.id.create_file_btn_date);
    create_file_btn_time = (Button) findViewById(R.id.create_file_btn_time);
    create_file_btn_cancle = (Button) findViewById(R.id.create_file_btn_cancle);
    create_file_btn_confirm = (Button) findViewById(R.id.create_file_btn_confirm);

    main_layout = (LinearLayout) findViewById(R.id.Mainlayout);

    time_tv = (TextView) findViewById(R.id.time_tv);
    date_tv = (TextView) findViewById(R.id.date_tv);

    context = this;

    create_file_btn_cancle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
        }
    });

    create_file_btn_confirm.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Button btn = new Button(context);
            btn.setText(create_file_title.getText().toString());
            btn.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);

            main_layout.addView(btn);
        }
    });

    create_file_btn_time.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Calendar now = Calendar.getInstance();

            final TimePickerDialog tpDialog = new TimePickerDialog(create_file_Activity.this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                    String state = "AM";
                    if (selectedHour > 12) {
                        selectedHour -= 12;
                        state = "PM";
                    }
                    time_tv.setText(state + " " + selectedHour + "시 " + selectedMinute + "분");
                }
            }, now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), false); // true의 경우 24시간 형식의 TimePicker 출현
            tpDialog.getCurrentFocus();
            tpDialog.show();
        }
    });

    create_file_btn_date.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DatePickerDialog dpDialog = new DatePickerDialog(create_file_Activity.this, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                    date_tv.setText(i+"년 "+(i1+1)+"월 "+i2+"일");
                }
            }, 0, 0, 0);
            dpDialog.getDatePicker().setMinDate(System.currentTimeMillis());
            dpDialog.show();
        }
    });
}

}`

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 이렇게만 올리면 알 수 없습니다. layout, 에러코드도 같이 첨부하세요. 주동혁 2020.6.15 19:59

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)