tengo una actividad que hace una transacción fragmentoAndroid: Fragmento no puede realizar actividad
DetailFragment newFragment = new DetailFragment();
transaction.replace(R.id.mylist, newFragment);
transaction.addToBackStack(null);
transaction.commit();
que funciona bien. Ahora sé dentro de mi actividad una cadena dinámica que necesito reemplazar en el diseño que tengo en newFragment. Pensé que puedo llamar después transaction.Commit() simplemente algo así como
newFragment.setMyString("my dynamic value");
Y en el newFragment.java tengo
public void setMyString(String s)
{
TextView tv = (TextView) getActivity().findViewById(R.id.myobject);
tv.setText(s);
}
El punto es que getActivity() devuelve un valor nulo. ¿Cómo puedo obtener el contexto que necesito para encontrar mis elementos de diseño?
Editar:
trato de seguir la ruta utilizando un paquete ya que esto parece ser la manera más limpia. Así que he cambiado mi código:
Bundle b = new Bundle();
b.putString("text", "my dynamic Text");
DetailFragment newFragment = new DetailFragment();
transaction.replace(R.id.mylist, newFragment);
transaction.addToBackStack(null);
transaction.commit();
Mi fragmento onCreateView se parece a esto:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.mylayout, container, false);
TextView t = (TextView) v.findViewById(R.id.texttobereplaced);
t.setText(savedInstanceState.getString("text");
}
Parece que savedInstranceState está vacía. ¿Dónde debería encontrar mi paquete?
Edit2:
perdieron los getArguments() en la respuesta. está trabajando ahora.
Mi diseño está inflado en se llama aViewCreated. Puedo ver mi diseño. – AndyAndroid