2011-01-16 9 views
2

에 여기 내 된 .java 파일입니다안드로이드 응용 프로그램 충돌 시작에 의한 java.lang.NullPointerException이

이클립스에서
package com.shoppinglist; 

import java.util.ArrayList; 

import android.app.Dialog; 
import android.app.ListActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 

public class ShoppingList extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     final EditText et = (EditText) findViewById(R.id.edittext); 
     ListView lv = (ListView) findViewById(android.R.id.list); 
     final ArrayList<String> items = new ArrayList<String>(); 
     final ArrayAdapter<String> adapter; 
     adapter = new ArrayAdapter<String>(
     this, android.R.layout.simple_list_item_1, items); 
     lv.setAdapter(adapter); 
     setContentView(R.layout.main); 

     Button button1main = (Button) findViewById(R.id.add); 
     button1main.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      final Dialog dialog = new Dialog(ShoppingList.this); 
      dialog.setContentView(R.layout.maindialog); 
      dialog.setCancelable(true); 

     Button button = (Button) dialog.findViewById(R.id.cancel); 
     button.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        dialog.dismiss(); 
       } 
      }); 
      dialog.show(); 

     Button ok = (Button) dialog.findViewById(R.id.ok); 
     ok.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       items.add(0, et.getText().toString()); 
       adapter.notifyDataSetChanged(); 
       dialog.dismiss(); 
       et.setText(""); 
     } 

      } 
     ); 
     } 
     }); 
    } 
} 

답변

2

추가

setContentView (R.layout.main);

super.onCreate (savedInstanceState);

로 문제를 해결할 수 있습니다.

+0

고마워요.하지만 대화 상자에서 확인을 클릭하면 예기치 않게 중지됩니다. LogCat에는 또 다른 nullpointerexception이 있습니다. 잘못된 onClick 코드처럼 보입니다 (너무 많은 문자가있는 LogCat를 복사하여 붙여 넣을 수 없음). – Cg2916

+0

버튼 버튼 = (버튼) dialog.findViewById (R.id.cancel); 당신에게 오류가 발생했습니다. 대신 버튼 단추 = (Button) findViewById (R.id.cancel)를 사용합니다. –

+0

아니요, 확인을 눌러도 문제가 해결되지 않습니다. LogCat은 com.shoppinglist.ShoppingList $ 1 $ 2.onClick (ShoppingList.java:50)에서 nullpointerexception을가집니다. android.view.View.performClick (View.java:2344) android.view.View.onTouchEvent (View.java : 4133) android.windows.TextView.onTouchEvent (TextView.java:6510)에서 android.view.View.View.dispatchTouchEvent (View.java:3672)에서 android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:882)) android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:882) android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:882) 3 개의 dispatchtouchevent 오류가 더 있습니다. – Cg2916

0

가, 창>보기는 ...> 안드로이드> 로그 캣 로그 메시지를 표시하기 위해 사용 충돌을 설명하기 위해 관련 예외를 찾으십시오.

+1

** 댓글이 아니어야합니까? ** –

관련 문제