尝试在空对象引用上调用虚拟方法'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:

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

最新更新