私はアンドロイドで最初のアプリケーションを作成しています。現在位置を取得してBroadacastレシーバにデータを送信するサービスでドロワーレイアウトを使用します。これはDashboard Fragmentの緯度と経度のテキストビューを更新するしかし、updateDashLocationが呼び出されると、私はこのエラーを受け取ります:原因:java.lang.NullPointerException:DashLatitudeのヌルオブジェクトリファレンスで仮想メソッド 'void android.widget.TextView.setText(java.lang.CharSequence)'を呼び出そうとしています。 setText(緯度);とDashLongitude.setText(経度)。フラグメント内のTextviewテキストを変更する
断片コード
public class DashboardFragment extends Fragment {
public DashboardFragment() {
// Required empty public constructor
}
View dashboardInflatedView;
TextView DashLatitude,DashLongitude;
String TAG = "GPSTracker";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Toolbar toolbar = ((MainActivity)getActivity()).toolbar;
toolbar.setTitle("Dashboard");
dashboardInflatedView = inflater.inflate(R.layout.fragment_dashboard, container, false);
DashLatitude = (TextView)dashboardInflatedView.findViewById(R.id.DashLatitude);
DashLongitude = (TextView)dashboardInflatedView.findViewById(R.id.DashLongitude);
return dashboardInflatedView;
}
public void updateDashLocation(String latitude, String longitude){
//Log.d(TAG, "Update Dashboard Location");
DashLatitude.setText(latitude);
DashLongitude.setText(longitude);
}
}
どうupdateDashLocationが呼び出されたときに、私はダッシュボードのフラグメントの要素にアクセスすることができますか?
フラグメントビューが作成される前にupdateDashLocationが呼び出されているように見えます – diedu
あなたのビューに正しいIDがありますか? – LukeWaggoner
IDは正しいです! updateDashLocationは、フラグメントの作成後に呼び出されます。私がテストを繰り返す現金を削除した後、私は原因を受け取ります:java.lang.NullPointerException:仮想メソッド 'android.view.View android.view.View.FindViewById(int)'をヌルオブジェクト参照で呼び出そうとしました.DashLatitude .setText( "test");フラグメントのonCreateView中に、テキストは正しく更新されます...何らかの方法で、私はインフレータの後で同じフラグメント内のフラグメントViewにアクセスできません!誰でも私を助けることができますか? – Cristian