新問題的方法abaut這樣:Android Studio Refresh ErrorAndroid Studio中調用片段從其他片段或活動
我想從另一個片段的片段叫Method
。我已經試過這個:
(Tab3Storage) (getSupportFragmentManager().findFragmentById(R.id.tab3storage)).Storagerefresh();
但我有一個NullPointerException
錯誤。我怎樣才能使這個或調用窗體成爲片段的活動,因爲從片段到活動的調用已經很好。
代碼:
主要活動:
public void refreshAll(){
Tab3Storage tab3Storage = new Tab3Storage();
tab3Storage.Storagerefresh();
Tab4Gravel tab4Gravel = new Tab4Gravel();
tab4Gravel.Gravelrefresh();
}
這是片段代碼:
totalMoney = loadData("totalMoney");
totalMoneyDisplay.setText("$ " + totalMoney);
totalGravel = loadData("totalGravel");
totalGravelDisplay.setText(totalGravel + " Gravel");
Storage_Level = loadData("storageLevel");
if (Storage_Level == 0){
Storage_Level = 1;
}
if(Storage_Level == 1){
Storage_Capacity = Storage_Level1;
}
if(Storage_Level == 2){
Storage_Capacity = Storage_Level2;
}
if(Storage_Level == 3){
Storage_Capacity = Storage_Level3;
}
if(Storage_Level == 4){
Storage_Capacity = Storage_Level4;
}
saveData("storageLevel", Storage_Level);
Storage_Filled = totalGravel;
storageCapacityDisplay.setText(Storage_Filled + "/" + Storage_Capacity);
SellGravelButton.setText("Sell: $" + totalGravel);
storageUpgradebtn.setText("Level " + Storage_Level + ":\n$" + Storage_Capacity/2);
負載數據代碼:
private long loadData(String name){
SharedPreferences shared = this.getActivity().getPreferences(Context.MODE_PRIVATE);
long value = shared.getLong(name, 0);
return value;
}
這工作得更好,但給我的這個錯誤:「顯示java.lang.NullPointerException:嘗試在調用虛擬方法android.content.SharedPreferences android.support.v4.app.FragmentActivity.getPreferences(INT)'空對象引用「 –
這與此問題有所不同。這與你的'SharedPreferences'有關。包括髮生在哪裏的代碼 – Code
我把代碼放在問題 –