這是我的第一個stackoverflow帖子。
我試圖建立一個應用程序,它用LocalBroadcastManager檢索傳感器數據,然後在中更新TextView已經連接容器內的片段。
我試圖從MainActivity調用homeFragment.passData()方法,但沒有成功。
我的猜測是因爲片段已經膨脹了,所以不能通過調用該方法來更新。
這裏是MainActivity代碼,我調用方法來更新TextView的從MainActivity更新textview內部片段
@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);
}
,這裏是爲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());
}
代碼}
雖然logcat的textview.getText( ).toString顯示更新值,實際視圖尚未更新
10-21 14:03:56.240 19338-19338/pro.adhi.willyam.orientation I/HomeFragment: updateTextView: TextView value: 45||-34||4
這裏是截圖來自我的電話:https://i.stack.imgur.com/ZDsad.png
因此,如何正確地更新內部片段的TextView像我想要達到什麼目的?
我希望我的問題是可以理解的。 Thankyou
只使用一個回調,它會調用你的UI中的片段,或者您可以使用片段的靜態對象。但我提到你使用回調 –
即時通訊不能確定你的意思,你可以更具體請撥打 – fullmoon6661