ceci est mon premier post stackoverflow.
J'essayais de construire une application qui restituer les données du capteur avec LocalBroadcastManager, puis mettre à jour TextView dans déjà attaché fragment à l'intérieur du conteneur.
J'ai essayé d'appeler la méthode homeFragment.passData() de MainActivity mais je n'ai pas réussi.
Ma conjecture est parce que le fragment déjà gonflé de sorte qu'il ne peut pas être mis à jour en appelant cette méthode.
Voici le code MainActivity où j'appelle méthode pour mettre à jour le textviewMise à jour du texte à l'intérieur du fragment à partir MainActivity
@Override
public void onReceive(Context context, Intent intent) {
String azimuthValue = intent.getStringExtra("azimuth");
String pitchValue = intent.getStringExtra("pitch");
String rollValue = intent.getStringExtra("roll");
homeFragment.passData(azimuthValue, pitchValue, rollValue);
}
Et voici le code pour HomeFragment
public class HomeFragment extends Fragment {
private static final String TAG = "HomeFragment";
private Context mContext;
private TextView xValueTextView;
private TextView yValueTextView;
private TextView zValueTextView;
private OnFragmentInteractionListener mListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
xValueTextView = (TextView) rootView.findViewById(R.id.xValueTextView);
yValueTextView = (TextView) rootView.findViewById(R.id.yValueTextView);
zValueTextView = (TextView) rootView.findViewById(R.id.zValueTextView);
Log.d(TAG, "onCreateView: layout inflated");
return rootView;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnFragmentInteractionListener {}
public void passData(String x, String y, String z) {
xValueTextView.setText(x);
yValueTextView.setText(y);
zValueTextView.setText(z);
Log.i(TAG, "updateTextView: TextView value: " + xValueTextView.getText().toString() + "||" + yValueTextView.getText().toString() + "||" + zValueTextView.getText().toString());
}
}
Bien que logcat textview.getText () .toString afficher la valeur mise à jour, la vue réelle n'est pas encore mise à jour
10-21 14:03:56.240 19338-19338/pro.adhi.willyam.orientation I/HomeFragment: updateTextView: TextView value: 45||-34||4
est ici capture d'écran de mon téléphone: https://i.stack.imgur.com/ZDsad.png
Alors, comment mettre à jour correctement textview à l'intérieur fragment comme ce que je suis en train de réaliser?
J'espère que ma question est compréhensible. Thankyou
il suffit d'utiliser un rappel, il appellera votre ui dans le fragment ou vous pouvez utiliser l'objet statique du fragment. Mais je vous recommande d'utiliser le rappel –
im pas certain de ce que vous voulez dire, pouvez-vous être plus précis s'il vous plaît – fullmoon6661