validar style studio propiedades obtener example eventos edittext datos android android-edittext

android - style - findViewById devuelve null para EditText



propiedades edittext android (4)

public class MainActivity extends Activity { private EditText editText; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText) findViewById(R.id.etext); if(editText == null) { Log.v("editText", "booohooo"); } else { Log.v("editText", "Success"); } final Button button = (Button) findViewById(R.id.gobutton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if(editText != null) { Log.v("editText", "is not NULL"); } else { Log.v("editText", "is NULL :("); } // Perform action on click if(editText != null) { editText.getText(); } else { Log.v("editText", "is NULL"); } Log.v("url", editText.getText().toString().trim()); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(editText.getText().toString().trim())); startActivity(browserIntent); } }); } }

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android_id="@+id/websiteurlheading" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Enter web site URL" /> <EditText android_id="@+id/etext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/websiteurlheading" /> <Button android:id="@+id/gobutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enter" /> </LinearLayout>

Cualquier ayuda es apreciada.


Asegúrese de que setContentView(R.layout.main); se establece en el diseño correcto. Si ha creado uno nuevo (que incluye el código xml anterior), utilícelo para establecer la vista de contenido - setContentView(R.layout.your_xml_filename);


Estaba enfrentando este problema hace unos segundos y había buscado algunas publicaciones de . Encontré la solución yo mismo.

Solo asegúrate de no estar llamando a editText.getText().toString(); en el método onCreate. Porque solo devolverá los valores precargados. Por lo tanto, editext siempre devolverá nulo en este caso.


cambia las líneas en tus Vistas

android_id="@+id/websiteurlheading" android_id="@+id/etext"

y cambiar la Id. de vista como esta

android:id="@+id/websiteurlheading" android:id="@+id/etext"

p.ej

<TextView android:id="@+id/websiteurlheading" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Enter web site URL" /> <EditText android:id="@+id/etext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/websiteurlheading" />


Esto sucede si el diseño utilizado para la función setContentView no es el mismo que su diseño colocado en EditBox.