마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 datepicker 예제 질문있습니다.

0 추천

 

안드로이드프로그래밍정복 책을 보며 공부하고있는 학생입니다. 

아래 소스에서 updateNow(); 부분만 들어가면, nullpointerexception이 뜨면서 오류가 발생합니다. 

 

연결된 뷰가 없어서 에러가 계속 발생하는 것 같은데.. 책에서도 이렇게 설명을 하고 있어서 당황스럽군요..

고수님들 도와주세요

 

package com.ghjh.mom_baby;

import java.util.Calendar;
import java.util.GregorianCalendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.Toast;

public class AddBaby1_Activity extends Activity {
	int mYear, mMonth, mDay;
	Button btn_datePicker;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_addbaby1);

		Button btn_datePicker = (Button) findViewById(R.id.btn_datepicker);

		Calendar cal = new GregorianCalendar();
		mYear = cal.get(Calendar.YEAR);
		mMonth = cal.get(Calendar.MONTH);
		mDay = cal.get(Calendar.DAY_OF_MONTH);

		updateNow();

		btn_datePicker.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				new DatePickerDialog(AddBaby1_Activity.this, mDateSetListener,
						mYear, mMonth, mDay).show();
			}
		});
	}

	DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

		@Override
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			// TODO Auto-generated method stub
			mYear = year;
			mMonth = monthOfYear;
			mDay = dayOfMonth;

			updateNow();
		}
	};

	void updateNow() {
		String str = mYear + "년" + (mMonth + 1) + "월" + mDay + "일";
		btn_datePicker.setText(str);
	}

}

 

익명사용자 님이 2015년 2월 21일 질문

1개의 답변

0 추천
 
채택된 답변

updateNow() 메소드 안에서 널포인트 에러날 부분은

btn_datePicker.setText(str); 밖에 없어 보입니다.

btn_datePicker를 따라가 보니, btn_datePicker 를 전역변수로 선언해 놓으시고

onCreate 안에서 동일한 변수명으로 지역변수로 생성하였습니다.

Button btn_datePicker = (Button) findViewById(R.id.btn_datepicker);

btn_datePicker = (Button) findViewById(R.id.btn_datepicker);

로 바꾸어야 합니다.

가랑비 (10,530 포인트) 님이 2015년 2월 21일 답변
...