안드로이드 TextView에 날짜 받아오기 오류가 납니다

조회수 882회

MainActivity에서 날짜를 보여주는 dateTextView를 터치하면 onClickListener로 CalendarActivity로 이동할 수 있게끔 했습니다.

dateTextView는 날짜를 보여주기도하며 터치 시 CalendarView에서 날짜를 선택할 수 있게했습니다.

private View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.dateTextView:
                    startActivity(new Intent(MainActivity.this, CalendarActivity.class));
                    finish();
                    break;
            }
        }
    };

그리고 CalendarActivity는

public class CalendarActivity extends AppCompatActivity {

    private CalendarView calendarView;

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

        calendarView = findViewById(R.id.calendarView);
        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
                String date = year + " / " + (month + 1) + " / " + dayOfMonth;

                Intent intent = new Intent(CalendarActivity.this, MainActivity.class);
                intent.putExtra("date", date);
                startActivity(intent);

                finish();
            }
        });
    }
}

date라는 키이름으로 MainActivity로 데이터를 넘겨주었습니다.

MainActivity에서 onCreate메서드 내부에

Intent dateIntent = getIntent();
        String inputDate = dateIntent.getStringExtra("date");
        if(!TextUtils.isEmpty(inputDate)) {
            View_Date = inputDate;
            dateTextView.setText(inputDate);
        } else {
            dateTextView.setText(View_Date);
        }

이렇게 받아온 날짜 데이터를 dateTextView에 넣으려고 하니까 NullPointException이 뜨면서 꺼지더군요... CalendarActivity에서 넘겨준 데이터를 inputDate로 잘 받았다고 생각했는데 널포인트 오류가 납니다... 정확히는

dateTextView.setText(inputDate);

dateTextView.setText(View_Date);

여기서 널포인트 오류가 납니다. 어디가 문제인지 알고싶습니다...ㅜㅜ

if문이 없을 때는 inputDate를 System.out.println으로 찍어보면 날짜가 나오는데 널포인트가 뜹니다.

if문이 있으면 inputDate에서 널포인트가 나네요...

+View_Date는 getToday_date()를 집어넣은 String 변수입니다.

public static String getToday_date() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.KOREA);
        Date currentDate = new Date();
        String today = simpleDateFormat.format(currentDate);

        return today;
    }

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 답을 알았기에 자답합니다 ㅜㅜ 애초에 TextView는 onClickListener를 쓸 때 저렇게 쓰면 안 되는거였군요... 따로 호출하고 setOnClickListener를 해주니 널포인트도 안 뜨고 정상적으로 돌아가네요. 알 수 없는 사용자 2020.6.29 14:39

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

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

(ಠ_ಠ)
(ಠ‿ಠ)