2017-05-14 2 views
1

Android Studio에서 개발을 배우기 시작했으며 첫 번째 응용 프로그램이 작동하는 동안 (저는 stackoverflow를 처음 사용했습니다.이 스레드를 표시하는 방식이 만족 스럽다), 나는 nullpointerexceptions의 brickwall을 만났다. 버튼을 클릭하면 텍스트 메시지 (토스트)를 표시하는 버튼을 만들고 싶었습니다. 아마도 초보자가 실수 한 경우 일지 모르지만 문제가 정확히 무엇인지 알 수없는 것 같습니다. 누군가 제발 나를 밝혀 줄 수 있니?getApplicationContext로 인해 NullPointerException이 발생합니다.

지금까지 내가 말할 수있는 오류 메시지의 관련 부분은 다음과 같습니다

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference 

을 Heres 코드 :

public class FirstActivity extends AppCompatActivity { 

    private static FirstActivity instance; 



    Context context = getApplicationContext(); 
    CharSequence text = "A text that appears for a short time"; 
    int duration = Toast.LENGTH_SHORT; 

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


    } 

    public void buttonclick(View view){ 
     Toast toast1 = Toast.makeText(context,text,duration); 

    } 

} 

와 XML :

<?xml version="1.0" encoding="utf-8"?> 
    <android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.rayaqin.myfirstandroidapp.FirstActivity"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="259dp" 
     android:text="Press Me" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" /> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Me" 
     tools:layout_editor_absoluteX="-498dp" 
     tools:layout_editor_absoluteY="527dp" 
     android:onClick="buttonclick"/> 

</android.support.constraint.ConstraintLayout> 
+2

[NullPointerException이란 무엇이며 어떻게 수정합니까?] (http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -) 대답 – EJoshuaS

답변

2

getApplicationContext()입니다 인스턴스 메소드이고 정적 컨텍스트에서 호출하려고합니다.

단순히 onCreate()으로 이동하십시오.

그러나 Activity은 응용 프로그램이 필요하지 않습니다. Context 자체로 확장 할 수 있습니다.

Toast toast1 = Toast.makeText(this,text,duration); 

this를 사용하고

Toast.makeText(this,text,duration).show(); 
+0

대답 주셔서 감사합니다, 지금은이 모든 것을 조금 더 이해합니다 응원 –

-2

그냥 당신은에서 onCreate에서 그 임무를 수행해야

Toast toast1 = Toast.makeText(this,text,duration).show(); 
+0

도와 줘서 고마워요 –

+0

도와 줘서 고마워요 .. –

0

와 토스트를 대체 보여().

그리고 context = this;을 사용하십시오.

+0

도움을 주셔서 감사합니다 –

관련 문제