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

Null 포인트가 뜨는 이유가 뭔지 모르겠네요...

0 추천
log 입니다.
11-06 11:02:28.460: E/AndroidRuntime(13747): FATAL EXCEPTION: main
11-06 11:02:28.460: E/AndroidRuntime(13747): java.lang.NullPointerException
11-06 11:02:28.460: E/AndroidRuntime(13747):  at com.example.excelex.MainActivity.getData(MainActivity.java:293)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at com.example.excelex.MainActivity$2.onClick(MainActivity.java:80)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at android.view.View.performClick(View.java:4223)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at android.view.View$PerformClick.run(View.java:17275)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at android.os.Handler.handleCallback(Handler.java:615)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at android.os.Handler.dispatchMessage(Handler.java:92)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at android.os.Looper.loop(Looper.java:137)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at android.app.ActivityThread.main(ActivityThread.java:4946)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at java.lang.reflect.Method.invokeNative(Native Method)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at java.lang.reflect.Method.invoke(Method.java:511)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
11-06 11:02:28.460: E/AndroidRuntime(13747):  at dalvik.system.NativeStart.main(Native Method)


///////////////////////////////////////////////////////////////////////////

 
onCreate 메소드
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  view = (LinearLayout) inflater.inflate(R.layout.activity_main, null);

  editdate = (EditText) view.findViewById(R.id.date);
 
excelbtn = (Button) findViewById(R.id.excelbtn);
  excelbtn.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    MainActivity main = new MainActivity();
    try {
     excelWrite(MainActivity.this, "ExcelEx.xls", main.getData());
    } catch (WriteException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  });
getData() 메소드
public List<Map<String, Object>> getData() {
  List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
  Map<String, Object> map = new HashMap<String, Object>();
 
  a = editdate.getText().toString();
  Log.d("", "a : " + a);
  map.put("editdate", a);

 

밤밤바 (1,450 포인트) 님이 2013년 11월 6일 질문

1개의 답변

0 추천
 
채택된 답변
main.getData() 호출 하셨는데 해당 main 변수는 현재 엑티비티를 new로 만드신거네요.

그러면 해당 main 변수에 있는 액티비티 클래스의 editdate 변수가 과연 초기화 되었을까요?

editdate가 null 입니다.
whitesnow (8,920 포인트) 님이 2013년 11월 6일 답변
밤밤바님이 2013년 11월 6일 채택됨
아...감사합니다. 거기까지 생각을 못했썻네요...
...