android - layoutcontainer - NullPointerException al acceder a RelativeLayout desde una vista personalizada
textview kotlin (2)
Soy relativamente nuevo en Android y estoy totalmente atascado en cómo acceder a mi Distribución relativa definida por programa (definida en un fragmento) en mi Vista personalizada.
En el fragmento, esto es lo que tengo:
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container,false);
RelativeLayout rl1 = new RelativeLayout(view.getContext());
TextView tView1 = new TextView(view.getContext());
tView1.setText("test");
rl1.addView(tView1);
rl1.setId(1);
tView1.setId(2);
...
}
Luego, en la vista personalizada, invoco el diseño relativo y TextView por id. Cuando trato de hacer algo, obtengo una excepción NullPointer.
...
RelativeLayout rl1 = (RelativeLayout) findViewById(1);
TextView tView1 = (TextView) findViewById(2);
tView1.getText();
El código anterior muestra el intento de .getText()
en TextView, pero cualquier cosa que haga a RelativeLayout también provoca una excepción NullPointer.
Entonces, básicamente, parece que no estoy encontrando RelativeLayout y TextViews correctamente. FYI, ya he visto esta pregunta similar , pero no se aplica aquí, mis constructores ya están configurados adecuadamente.
Debería agregar el Diseño a la Vista principal, sin embargo, debe convertirlo primero en un Diseño:
YourLayout view = (YourLayout) inflater.inflate(R.layout.fragment1, container,false);
RelativeLayout rl1 = new RelativeLayout(view.getContext());
TextView tView1 = new TextView(view.getContext());
tView1.setText("test");
rl1.addView(tView1);
rl1.setId(1);
tView1.setId(2);
view.addView (rl1);//add rl1 to the main View
Luego, para acceder, si está trabajando fuera, onCreateView()
y onCreateView()
ya se ha llamado:
RelativeLayout rl1 = (RelativeLayout) getView().findViewById(1);
TextView tView1 = (TextView) rl1.findViewById(2);
tView1.getText();
Si aún intenta acceder a las vistas en onCreateView()
, findViewById()
no importa; ya tiene las referencias de sus vistas, así que findViewById()
.
También vale la pena señalar que se puede agregar oyentes y onCreateView()
en onCreateView()
para actualizar la interfaz de usuario, por lo que es posible que pueda simplemente un poco las cosas.
Tiene que agregar su diseño relativo a su grupo de diseño ... Y desde la vista principal de su diseño, puede acceder a su diseño relativo y sus elementos secundarios