OnClickListener no funciona en fragmento

Tengo algunos problemas con el onClicklistener en el fragmento. Si hago clic en el botón nada sucede en absoluto. No obtengo ni un mensaje de la onClicklistener en Logcat ni un Toast aparecen en la pantalla, pero no puedo encontrar el error en el código. ¿Algunas ideas?

¡Agradecería cualquier ayuda! ¡Muchas gracias! Y lo siento por mi mal ingles

import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.EditText; import android.widget.Button; import android.widget.Toast; import android.util.Log; public class InputFragment extends Fragment { EditText input_text; String text; Button translate_button; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View InputFragmentView = inflater.inflate(R.layout.input_fgmt, container, false); input_text = (EditText) InputFragmentView.findViewById(R.id.input_field); translate_button = (Button) InputFragmentView.findViewById(R.id.translate); translate_button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { Log.d("Test", "onClickListener ist gestartet"); Toast.makeText(getActivity().getApplicationContext(), "Test", Toast.LENGTH_LONG).show(); saveInString(); } }); return inflater.inflate(R.layout.input_fgmt, container, false); } public void saveInString() { if(text.equals(null)) { Toast.makeText(getActivity().getApplicationContext(), "Das Feld ist leer!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getActivity().getApplicationContext(), "Speichern...", Toast.LENGTH_LONG).show(); text = input_text.getText().toString(); Toast.makeText(getActivity().getApplicationContext(), "Fertig", Toast.LENGTH_SHORT).show(); } } } 

Creo que el problema está aquí en su código

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ..... .... //problem is here below line return inflater.inflate(R.layout.input_fgmt, container, false); } 

Devuelve tu vista ya inflada

  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ..... .... return InputFragmentView; } 

cambio

  return inflater.inflate(R.layout.input_fgmt, container, false); 

a

  return InputFragmentView ; 

También cambia con esto:

 translate_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d("Test", "onClickListener ist gestartet"); Toast.makeText(getActivity().getApplicationContext(), "Test", Toast.LENGTH_LONG).show(); saveInString(); } }); 

Y la importación como una importación android.view.View;

Hacer esto cambia a su código

  1. En la definición de clase:

      public class InputFragment extends Fragment implements View.OnClickListener 
  2. Al llamar a setOnClickListener:

      translate_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View InputFragmentView) { Log.d("Test", "onClickListener ist gestartet"); Toast.makeText(getActivity().getApplicationContext(), "Test", Toast.LENGTH_LONG).show(); saveInString(); } }); 

La mejor manera de obtener todas las vistas creadas debe redefinir el método:

 @Override public void onActivityCreated(Bundle saved) { super.onActivityCreated(saved); input_text = (EditText) InputFragmentView.findViewById(R.id.input_field); translate_button = (Button) InputFragmentView.findViewById(R.id.translate); translate_button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { Log.d("Test", "onClickListener ist gestartet"); Toast.makeText(getActivity().getApplicationContext(), "Test", Toast.LENGTH_LONG).show(); saveInString(); } }); 

Porque este methode llamado después de toda la vista se han creado. Usted debe leer el ciclo de vida de Fragmento.

  • SetOnClickListener y setOnLongClickListener llamada en cuestión de botón único
  • ¿Cómo agregar tiempo al temporizador de cuenta atrás?
  • Android - método setOnClickListener cómo funciona?
  • Cajón de navegación OnItemClickListener
  • Cómo implementar OnClickListener en Android
  • Cómo utilizar el método onClickListener de Button en un ListView
  • Android - Gridview con Custom BaseAdapter, crear onclicklistener
  • Java - Android - Split Activity / Class en varios archivos para una mejor organización (solución)
  • ¿Por qué OnClickListener en un ViewHolder no funciona?
  • Evitar que ProgressDialog sea rechazado por onClick
  • Ajuste del valor de la variable global en el botón
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.