Вот код, который я использовал, если кому-то это нужно:
Сначала замените свой счетчик на следующую часть кода:
<RelativeLayout
android:layout_width="190dp"
android:layout_height="40dp"
android:layout_marginRight="5dp">
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/custom_spinner"
android:visibility="invisible" />
<Button
android:id="@+id/fake_btn"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/custom_spinner" />
<TextView
android:id="@+id/fake_text"
android:layout_width="140dp"
android:layout_height="40dp"
android:layout_marginLeft="10dp"
android:gravity="center_vertical"
android:textColor="#000000" />
</RelativeLayout>
Создайте новый XML-файл в папке для рисования с именем custom_spinner.xml
и поместите этот код:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/spinner_pressed" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/spinner_pressed" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/spinner_pressed" />
<item
android:drawable="@drawable/spinner_normal" />
</selector>
Загрузите эти две картинки и добавьте их в свою папку для рисования (spinner_pressed.9.png
и spinner_normal.9.png
):
В своей деятельности добавьте следующие переменные:
private Spinner spinner;
private Button fake_btn;
private TextView fake_text;
В методе onCreate добавьте:
spinner = (Spinner) findViewById(R.id.spinner);
fake_btn = (Button) findViewById(R.id.fake_btn);
fake_text = (TextView) findViewById(R.id.fake_text);
fake_btn.setOnClickListener(new OnClickListener() {
public void onClick(View v)
{
spinner.performClick();
}
});
spinner_manual.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parentView, View childView, int position, long id)
{
String value = (String) spinner.getItemAtPosition(position);
fake_text.setText(value);
}
public void onNothingSelected(AdapterView parentView) {}
});
Вот, пожалуйста, оно должно работать.