Привет, я создаю приложение, где я должен отправить широту и долготу от MainActivity до DashboardFragment. Эта широта и долгота - это строки, но я не могу передать их фрагменту, потому что там они равны нулю. Я пробовал с Bundle, и все в порядке, но теперь я не могу преобразовать значения Bundle в строки. Моя идея состоит в том, чтобы заполнить широту широты и долготу Strings с этими значениями Bundle, а затем просто использовать их в моем методе getObjectEvent (в котором мне нужна широта и долгота для отправки восходящего сообщения). Это мой метод для отправки лат и долго в Основной вид деятельности:Как добавить значения из Bundle в String?
private void getLatLong(){
if(null!=mCurrentLocation) {
String lat = String.valueOf(mCurrentLocation.getLatitude());
String lot = String.valueOf(mCurrentLocation.getLongitude());
Bundle bundle=new Bundle();
bundle.putString("KEY_LAT", lat);
bundle.putString("KEY_LNG", lot);
DashboardFragment fragment = DashboardFragment.newInstance(bundle);}
И это мой фрагмент Dashboard:
public class DashboardFragment extends Fragment {
RelativeLayout relativeLayout;
Context mContext;
static Bundle goran;
static String latitude, longitude;
public DashboardFragment() {
}
public void passData(Context context, AccountModel model) {
mContext = context;
accountModel = model;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_dashboard, container, false);
ButterKnife.inject(this, view);
initDashboard(view);
return view;
}
public void getObjectEvent(EventModel data){
Gson data_json = new Gson();
String json=data_json.toJson(data);
FirebaseMessaging fm=FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com")
.setMessageId(UUID.randomUUID().toString())
.addData("action","message")
.addData("data","{\"message\":\"Upstream Message\"}")
.addData("object", json)
.build());
}
public static DashboardFragment newInstance(Bundle bundle) {
DashboardFragment fragment = new DashboardFragment();
fragment.setArguments(bundle);
latitude= bundle.getString("KEY_LAT");
longitude=bundle.getSTring("KEY_LNG");
return fragment;
}
Когда я пишу эту часть в фрагменте Dashboard:
latitude= bundle.getString("KEY_LAT");
longitude=bundle.getSTring("KEY_LNG");
они оба равны нулю. И мой вопрос заключается в том, как заполнить строки значениями из пакета, и если кто-нибудь скажет мне, что это лучший способ передать строковые значения из активности в фрагмент или что-то лучше существует? Спасибо заранее.
Вы можете убедиться, что у вас есть значения для '' lat' и lot'? Кроме того, попробуйте 'getArguments(). GetString()' вместо 'bundle', может что-то изменить, но я сомневаюсь. – Vucko
Да, у меня есть значения для lat и log (Mozes i na srpskom zemljak: D) – Atenica
Мы могли бы, если бы я знал, как начать чат (я только видел кнопку чата, когда уже есть 7-8 комментариев): D – Vucko