2017-05-04 17 views
0

私は、ユーザーからTouchイベントをキャッチしてブール検証で使用しようとしています続行する画面 ")。しかし、私は質問のタイトルですエラーを取得します。言う ライン:nullのオブジェクト参照で仮想メソッド 'int android.view.MotionEvent.getAction()'を呼び出そうとしました

resultadoPalavra.setText("Você acertou! Pressione na tela para continuar"); 

は、私が言及した「画面上のキーを押し続ける」ということです。

コード:

public class ApurarResultadoFragment extends Fragment{ 

private TextView resultadoPalavra; 
String palavraDigitada; 
String resposta; 
MainActivity mActivity = new MainActivity(); 
private boolean isTouch = false; 
MotionEvent event; 


public ApurarResultadoFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.fragment_apurar_resultado, container, false); 
    resultadoPalavra = (TextView) view.findViewById(R.id.TextViewTesteFragment); 
    palavraDigitada = this.getArguments().getString("oqSeraFalado"); 
    resposta = this.getArguments().getString("resposta"); 

    if(testeResultado()){ 
     resultadoPalavra.setText("Você acertou! Pressione na tela para continuar"); 
     if(onTouchEvent(view, event)){ 
      Log.v("teste","" + isTouch); 
     } 

    } 
    return view; 
} 

public boolean onTouchEvent(View v, MotionEvent event){ 
    int eventaction = event.getAction(); 
    switch (eventaction){ 
     case MotionEvent.ACTION_DOWN: 
      isTouch = true; 
      break; 
     case MotionEvent.ACTION_UP: 
      isTouch = true; 
      break; 
     case MotionEvent.ACTION_MOVE: 
      isTouch = true; 
      break; 
    } 
    return true; 
} 

public boolean testeResultado() { 
    if (resposta.equalsIgnoreCase(palavraDigitada)){ 
     return true; 
    }else{ 
     return false; 
    } 
} 
} 

どのように私は、変数 "イベント" を初期化することができますか?

view.setOnTouchListener(new OnTouchListener() { 
    public boolean onTouch(View v, MotionEvent event) { 
     int eventaction = event.getAction(); 
     switch (eventaction) { 
      case MotionEvent.ACTION_DOWN: 
       isTouch = true; 
       break; 
      case MotionEvent.ACTION_UP: 
       isTouch = true; 
       break; 
      case MotionEvent.ACTION_MOVE: 
       isTouch = true; 
       break; 
     } 
     return true; 
     } 
    }); 

しかし、あなたの場合には、私が代わりにOnClickListener使用したい:私は彼女が

+0

[の可能性のある重複して何NullPointerException、どうすれば修正できますか?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –

答えて

0

はここでビューにTouchListenerを追加する方法だ問題だと思い

view.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Log.v("teste", "touched"); 
    } 
}); 
+0

ty u so much! :Dこれが私の問題を解決する –

関連する問題