2016-01-06 3 views
1

Я пытаюсь выровнять текст словаря Android. Я прошел через Stack Overflow и попробовал рекомендованное решение, но оно не работает для меня, поэтому я немного смущен тем, что я сделал неправильно. Я чувствую, что мой макет не правильно поднят из-за ошибки, которую я сделал.Как правильно выравнивать Android spinner

Мой activity.xml файл

<Spinner 
android:id="@+id/spinnerStoreType" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_weight="1"/> 

Под Рез \ макет я создал файл с именем simple_spinner_item.xml

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="40sp" 
    android:textColor="#FFFFFF" 
    android:padding="10dip" 
    android:gravity="right" 
    /> 

Наконец, в моей деятельности я использую это следующим образом:

spinnerStoreType = (Spinner) findViewById(R.id.spinnerStoreType); 
ArrayAdapter<CharSequence> adapter =  
ArrayAdapter.createFromResource(this, 
R.array.transaction_store_array, android.R.layout.simple_spinner_item); 

adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 
spinnerStoreType.setAdapter(adapter); 

Итак, я считаю, что используемый simple_spinner_item является стандартным, Android один. Я не понимаю, как заставить его использовать свой собственный. Я думал, что это произойдет автоматически, если у него будет такое же имя?

Любая помощь, как всегда, очень ценится.

+1

использования 'R.layout.simple_spinner_item.xml' вместо' android.R. simple_spinner_item.xml', чтобы использовать свой собственный макет. Вы также можете назвать это чем-то другим, это не должно быть таким же, как в android – MoQ93

+0

Итак, используя android. было причиной того, что он не использовал мой макет в основном. Большое спасибо за Вашу помощь. Поскольку вы прокомментировали, хотя я не уверен, как «принять» этот ответ? – greysqrl

+0

Добро пожаловать. вы можете отметить ответ Х. Бхонсле, принятый;) – MoQ93

ответ

2

android.R.layout.simple_spinner_item относится к изделию-обтекателю из библиотеки android и не будет иметь ваши собственные свойства. Вы должны иметь в виду ваш собственный формат с использованием R.layout.simple_spinner_item.

+0

Привет. Спасибо, что нашли время ответить на это. Комментарий выше от MoQ помог мне решить это, поэтому я хотел бы отметить это как ответ, если это возможно. Я все же ценю вашу помощь. Спасибо. – greysqrl

3

Вы можете достичь этого полностью, используя стили. И я думаю, что это лучший способ. Вот код из моего styles.xml-

<style name="AppTheme.Spinner"> 
     <item name="android:spinnerItemStyle">@style/SpinnerItem</item> 
     <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item> 
    </style> 

    <style name="SpinnerItem"> 
     <item name="android:gravity">right|center_vertical</item> 
     <item name="android:paddingRight">16dp</item> 
    </style> 

    <style name="SpinnerDropDownItem"> 
     <item name="android:gravity">right|center_vertical</item> 
     <item name="android:paddingRight">16dp</item> 
    </style> 

и здесь реализация на spinner-

 <Spinner 
      android:id="@+id/type" 
      android:layout_width="match_parent" 
      android:layout_height="48dp" 
      android:layout_below="@id/title" 
      android:entries="@array/data" 
      android:theme="@style/AppTheme.Spinner" /> 
+0

Привет. Спасибо. Проблема заключалась в том, что я добавлял «андроид». и, таким образом, доступ к Android, а не мой собственный счетчик. – greysqrl

+2

Это не проблема. Вы настроили макет и раскладку элементов. Вы можете обойтись без касания макета xmls. –

+0

На самом деле это проблема, которая теперь исправлена. То, что вы предложили, является альтернативой моей реализации, а не исправлением моей проблемы. В предыдущем ответе была исправлена ​​моя проблема, ваша просто альтернативный метод, а не решение проблемы, которая у меня была. – greysqrl