2017-01-06 16 views
1

私はユーザーが回答を入力して、ボタンをクリックすると、テキストビューが正しいと表示されます。 、TextViewにはまだだけ表示される はこれがAndroidスタジオEditTextでTextViewが読み込まれない

public class FragmentOne extends Fragment { 

    private EditText userAnswer; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View v = inflater.inflate(R.layout.fragment_fragment_one, null); 
     userAnswer = (EditText)v.findViewById(R.id.editText); 
     final String theAnswer = (userAnswer.getText().toString()); 
     Button submit = (Button)v.findViewById(R.id.submitBtn1); 
     submit.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       if (theAnswer.equalsIgnoreCase("Germany")) { 
        TextView tv = (TextView)v.findViewById(R.id.showCorrect); 
        tv.setText("Correct!"); 
       } 
      } 
     }); 
     return v; 


    } 
} 

しかし、ドイツが入力されたときに私のコードである 'x' の

関連するXMLのである(私はそれが最初に表示するように設定されている)

<Button 
    android:text="Submit" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="30dp" 
    android:id="@+id/submitBtn1" 
    android:layout_below="@+id/editText" 
    android:layout_centerHorizontal="true" /> 

<EditText 
    android:layout_width="220dp" 
    android:layout_height="70dp" 
    android:inputType="textPersonName" 
    android:hint="Write answer and press enter" 
    android:ems="10" 
    android:id="@+id/editText" 
    android:textSize="16sp" 
    android:layout_below="@+id/imageView" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:text="x" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/showCorrect" 
    android:layout_below="@+id/skipBtn" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="44dp" /> 

何が間違っていますか?あなたは、この行を変更する必要が

+0

ボタン上でtextViewを検索しようとしています。TextView tv =(TextView)v.findViewById(R.id.showCorrect); オブジェクトをクリックすると、onClick(View v)オブジェクトが表示されます。あなたのuserAnswerオブジェクトで初期化する必要があります – user5599807

+0

@ user5599807 userAnswerオブジェクトで何を初期化するのですか?あなたは私が変更する必要があるコードについてもっと明示することができます –

答えて

1

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View v = inflater.inflate(R.layout.fragment_fragment_one, null); 
    userAnswer = (EditText)v.findViewById(R.id.editText); 
    TextView tv = (TextView)v.findViewById(R.id.showCorrect); 
    Button submit = (Button)v.findViewById(R.id.submitBtn1); 
    submit.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String theAnswer = (userAnswer.getText().toString()); 
      if (theAnswer.equalsIgnoreCase("Germany")) { 
       tv.setText("Correct!"); 
      } 
     } 
    }); 
    return v; 


} 

すなわち:あなたのコードのuserAnswer値で常に同じです(ボタンのクリックでチェックされません)

+0

私はこれにコードを変更しましたが、それは私がサブミットを押したときにアプリケーションをクラッシュします。 –

+0

@KaraWエラーを投稿してください –

+0

何も表示するstacktraceを得ることができません。コードを変更する前にクラッシュしていませんでした –

1

コードに変更する必要:

public class FragmentOne extends Fragment { 

    private EditText userAnswer; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View v = inflater.inflate(R.layout.fragment_fragment_one, null); 
     userAnswer = (EditText)v.findViewById(R.id.editText); 
     final TextView tv = (TextView)v.findViewById(R.id.showCorrect); //changed 
     Button submit = (Button)v.findViewById(R.id.submitBtn1); 
     submit.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       String theAnswer = (userAnswer.getText().toString()); 
       if (theAnswer.equalsIgnoreCase("Germany")) { 
        //TextView tv = (TextView)v.findViewById(R.id.showCorrect); 
        tv.setText("Correct!"); 
       } 

       // updateScore(); 
      } 
     }); 
     return v; 
    } 
関連する問題