2016-06-10 5 views
0

Я хочу использовать google place picker в своем приложении. Я следил за этой ссылкой https://developers.google.com/places/android-api/placepicker и добавил сборщик места в моем фрагменте, но доза не получила цвет или тему моего приложения. Панель инструментов выбора места показывает белый цвет.Как я могу выбрать google place picker в качестве темы моего приложения?

Его написано в документе, что сборщик принимает цветПример от материальной темы приложения. У меня также есть colorPimary и colorPrimaryDark im my style.xml.

Что здесь не так?

код:

public class NameOfBusinessFragment extends Fragment { 

    int PLACE_PICKER_REQUEST = 1; 
    int RESULT_OK = -1; 
    PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder(); 
    EditText category,location; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 


     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      View view = inflater.inflate(R.layout.fragment_name_of_business, 
        container, false); 

      location = (EditText)view.findViewById(R.id.location); 

      location.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        try { 

         startActivityForResult(builder.build(getActivity()), PLACE_PICKER_REQUEST); 
        } 
        catch (GooglePlayServicesRepairableException e) 
        { 
         Toast.makeText(getActivity(),"ServiceRepaire Exception",Toast.LENGTH_SHORT).show(); 
        } 
        catch (GooglePlayServicesNotAvailableException e) 
        { 
         Toast.makeText(getActivity(),"SeerviceNotAvailable Exception",Toast.LENGTH_SHORT).show(); 
        } 
       } 
      }); 

      return view; 
     } 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == PLACE_PICKER_REQUEST) { 
      if (resultCode == RESULT_OK) { 
       Place place = PlacePicker.getPlace(data, getActivity()); 
       String toastMsg = String.format("Place: %s", place.getName()); 
       Toast.makeText(getActivity(), toastMsg, Toast.LENGTH_LONG).show(); 
       location.setText(place.getName()); 
      } 
     } 
    } 
} 

Style.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="windowActionBarOverlay">false</item> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:windowContentOverlay">@null</item> 

    <item name="android:editTextStyle">@style/EditTextStyle</item> 

</style> 

<style name="EditTextStyle" parent="Widget.AppCompat.EditText"> 
    <item name="colorControlNormal">@color/colorAccent</item> 
    <item name="colorControlActivated">@color/colorAccent</item> 
    <item name="colorControlHighlight">@color/colorAccent</item> 
</style> 

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

Как это получить?

+0

У вас есть решение этой проблемы? По-видимому, я также столкнулся с тем же вопросом в 4.2.2. устройства. Кажется, что он работает нормально на устройствах 5.1.1. –

ответ

0

Попробуйте заменить

startActivityForResult(builder.build(getActivity()), PLACE_PICKER_REQUEST); 

с:

Intent placePickerIntent = builder.build(getActivity()); 
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 
    placePickerIntent.putExtra("primary_color", ContextCompat.getColor(this, R.color.colorPrimary)); 
    placePickerIntent.putExtra("primary_color_dark", ContextCompat.getColor(this, R.color.colorPrimaryDark)); 
} 
startActivityForResult(placePickerIntent, PLACE_PICKER_REQUEST); 

Место комплектовщик не автоматически выбрать цвет от темы. Это ошибка, как обсуждалось here. Также обратите внимание, что это взлом, а не фактическое чистое решение.

+0

Я пробовал только начинать намерение для другого приложения, и он автоматически выбирал цвет темы на одном устройстве. Не знаю, что не так для другого приложения. У меня одинаковые стили с обоими приложениями. @Obscure Geek – Sid

+0

Интересно. Тот же стиль и одно и то же устройство. Реализуются ли версии библиотеки для дизайна и приложений? –

+0

Да, я только что изменил имя пакета приложения, и в дальнейшем изменил действия и дизайн по мере необходимости. и когда я попытался реализовать инструмент выбора места, как и предыдущее приложение, он сработал. Все еще не работает для предыдущего приложения. @Obscure Geek – Sid