2012-08-02 2 views
0

여기 자바가 있습니다 ... 누군가가 내게 뭐가 잘못 말해 줄 수 있니? 여기에 오류가있을 수 있습니다 logcat (아래)의 주요 오류는 Null 포인터입니다 그림 ... 내가 틀릴 수도 있습니다 ... 모두 주셔서 감사합니다! 여기 내 앱을 시작하는 데 문제가 있습니까?

package tip.calculator; 


import android.os.Bundle; 
import android.app.Activity; 
import android.view.View.OnClickListener; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.view.View; 
import android.widget.Button; 




public class TipCalculator extends Activity 
{ 

private Button enter; 
EditText myEditField ; 
EditText myEditField2; 
float percentage = 0; 
float percentageInp = 0; 
float billAmount = 0; 
double output = 0; 
String output1 = ""; 
Button clearButton ; 
TextView textView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myEditField = (EditText) findViewById(R.id.percentText); 
    enter = (Button)findViewById(R.id.button1); 
    myEditField2 = (EditText) findViewById(R.id.billText); 



    enter.setOnClickListener(new OnClickListener() { 


     public void onClick(View v) { 

      TextView errors; 
      textView = (TextView) findViewById(R.id.textView1); 
      errors = (TextView) findViewById(R.id.errorText);  
      clearButton = (Button) findViewById(R.id.clearButton); 

      for(;;){ 

      if(myEditField == null){ 
       errors.setText("Percent must be filled in"); 
       break; 

      } 

      if(myEditField2 == null){ 
       errors.setText("Bill Amount must be filled in"); 
       break; 
      } 

      } 

      percentageInp = Float.parseFloat(myEditField.getText().toString()); 
      billAmount = Float.parseFloat(myEditField2.getText().toString()); 

      percentage = ((float)percentageInp /100); 

      output = (double)(billAmount * percentage); 

      double result = output * 100; 
      result = Math.round(result); 
      result = result/100; 

      output1 = Double.toString(result); 

      textView.setText(output1 + " $"); 

     } 
    }); 

    clearButton.setOnClickListener(new OnClickListener() { 

     public void onClick(View arg0) { 

      percentage = 0; 
      output = 0; 
      output1 = ""; 
      TextView textView = null; 

      textView.setText(""); 

      percentageInp = 0; 
      billAmount = 0; 

      myEditField.setText(""); 
      myEditField2.setText(""); 


     } 


    }); 
} 
} 

가 로그 캣은 ... 나는이 시작할 위치를 모르는 ..

08-01 18:13:41.915: E/AndroidRuntime(30328): FATAL EXCEPTION: main 
08-01 18:13:41.915: E/AndroidRuntime(30328): java.lang.RuntimeException: Unable to start activity ComponentInfo{tip.calculator/tip.calculator.TipCalculator}: java.lang.NullPointerException 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.ActivityThread.access$600(ActivityThread.java:127) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.os.Looper.loop(Looper.java:137) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.ActivityThread.main(ActivityThread.java:4507) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at java.lang.reflect.Method.invokeNative(Native Method) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at java.lang.reflect.Method.invoke(Method.java:511) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at dalvik.system.NativeStart.main(Native Method) 
08-01 18:13:41.915: E/AndroidRuntime(30328): Caused by: java.lang.NullPointerException 
08-01 18:13:41.915: E/AndroidRuntime(30328): at tip.calculator.TipCalculator.onCreate(TipCalculator.java:82) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.Activity.performCreate(Activity.java:4465) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 
08-01 18:13:41.915: E/AndroidRuntime(30328): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932) 
08-01 18:13:41.915: E/AndroidRuntime(30328): ... 11 more 
+0

findViewById 당신이 매니페스트 파일에의 tipCalculator을 포함 실행기로 선언하여 다른 버튼과 함께 clearButton을 설정할 수 있습니다. – Gogu

+1

어느 것이 82 행입니까? – 0gravity

+0

clearButton.setOnClickListener (new OnClickListener() { – PrommeringsDisplay

답변

0
Caused by: java.lang.NullPointerException 
    at tip.calculator.TipCalculator.onCreate(TipCalculator.java:82) 

당신은 clearButton를 초기화하지 않습니다. 댓글

에서

clearButton.setOnClickListener(new OnClickListener() {...} 

추가는 당신이 이동해야합니다

clearButton = (Button) findViewById(R.id.clearButton); 

여기에 : 엔터 버튼을 클릭하면

myEditField = (EditText) findViewById(R.id.percentText); 
enter = (Button)findViewById(R.id.button1); 
myEditField2 = (EditText) findViewById(R.id.billText); 
clearButton = (Button) findViewById(R.id.clearButton); 
+0

아니요 clearButton.setOnClickListener (new OnClickListener() { – PrommeringsDisplay

+0

) 내가 입력 한 onClick에서 문제가 있었습니까? – PrommeringsDisplay

+1

그 곳을 참조하면됩니다. 올바른 범위에서'clearButton'을 초기화합니다 .. 버튼이 눌려 질 때까지 onClick() 메소드는 실행되지 않습니다 ... – Sam

0

clearButton에만 설정됩니다. Enter 단추를 누르기 전에 clearButton을 누르면 오류가 발생합니다.

당신은

관련 문제