2016-02-22 2 views
1

новичок здесь.Изменение создания маркера в android

Я пытаюсь сделать приложение, используя карты Google api. Я знаю, как изменить маркер - цвет, рисунок, форму; Я знаю, как отображать вещи на маркерных щелчках, таких как город, лат, lang и т. Д. То, что я не мог найти, - это создать маркер, который требует, чтобы вы заполнили настраиваемую форму о маркере.

Чтобы было легче понять, что я действительно хочу сделать, вот полное объяснение моей цели:

  • пользователя администратор вошел в систему, и он может создать маркер (Я создал Войти/зарегистрировать часть моего приложения уже, никаких проблем здесь :))
  • , когда он долго нажимает на карте нового вида деятельность открывает
  • в этой деятельности есть поля - админ имя, название ресторана, краткое описание и рабочие часы
  • ther е должно быть две кнопки - если администратор нажмет Сохранить маркер прижат и информация сохраняется (сервер и SQLite), и если он нажимает отменить он никогда не возлагали

Я искал ответ какое-то время без успеха. Я был бы признателен, если кто-нибудь знает, как это сделать.

Заранее спасибо.

EDIT: Мой код до сих пор:

  //Add marker on long click 
    mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 

     int iMax = 10; // Max number of markers one admin can pin 

     @Override 
     public void onMapLongClick(LatLng arg0) { 

      if (markerCount < iMax) { 
       // start CreateRestautantActivity to open a form to fill 
       Intent intent = new Intent(getActivity(), CreateRestautantActivity.class); 
       startActivity(intent); 

       markerCount = markerCount + 1; 
       marker = mMap.addMarker(new MarkerOptions() 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_create_restauranr)) 
         .position(
           new LatLng(arg0.latitude, 
             arg0.longitude)) 
         .visible(true)); 
      } else { 
       Toast.makeText(getActivity().getBaseContext(), "Only " + iMax + " markers allowed at the same time", 
         Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
+0

В чем проблема в этой реализации? –

+0

Привет @Vivek, я попробовал открыть новую активность из своих карт. Активности, но она действительно запуталась и не прошла никуда. До сих пор я добавлю свой код, чтобы показать вам это. – Kemo

+0

и в чем проблема с вашим кодом? –

ответ

1

Вы можете сделать это двумя способами. Один из них заключается в том, чтобы открыть действие на startActivityForResult, которое будет содержать форму для ввода необходимых значений, таких как имя ресторана, описание и т. Д. После ввода значения и когда пользователь нажимает OK, завершите операцию и установите значения, как показано ниже:

Intent mapViewIntent = new Intent(); mapViewIntent.putExtra(MapActivity.KEY_RESTNAME, restaurantName); mapViewIntent.putExtra(MapActivity.KEY_DESCRIPTION, description); setResult(RESULT_OK, MapActivity); finish();

Добавьте эти строки в свою активность на карте.

public static String KEY_RESTNAME = "restaurant_name"; public static String KEY_DESCRIPTION = "description";

Это откроет предыдущую (карту) деятельности и отправить обратно данные. Вы можете получить имя restuarantName и описание из onActivityResult() следующим образом:

String restname = data.getExtra(KEY_RESTNAME); String description = data.getExtra(KEY_DESCRIPTION).

Теперь у вас есть название ресторана и его описание. И вы знаете, как отображать эти значения в маркере.

Другой способ аналогичен этому, вместо открытия действия вы можете использовать диалог, который будет содержать форму для ввода значений.

Аналогичным образом вы получаете и другие значения.

Надеюсь, это поможет.

+0

Извините, что, не отвечая ранее, я был bussy. Попробуем это утром и отметьте это как ответ, если это поможет :) спасибо за этого человека – Kemo

+0

Я думал об этом - после создания маркера, и когда пользователь приложения нажимает на существующий маркер, он должен открыть различную активность, которая будет иметь имя, описание, рабочее время, имя администратора, а также три кнопки для классификации ресторана - положительные, отрицательные и нейтральные. Можно ли это достичь таким же образом и мне нужны КЛЮЧИ для этого. Заранее спасибо :) – Kemo

Смежные вопросы