2012-01-20 19 views
12

Próbuję wykonać w pełni niestandardowy spinner. Mam trudności z układem, który pojawia się po naciśnięciu. Oto mój kod do mojego adaptera:Android: układ niestandardowego pokrętła

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.my_array, R.layout.spinnertext); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

Z tego co czytałem w dokumentacji, układ stosowany apears być ustawione przez linię:

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

Choć za każdym razem zmienić go na nowy układ, który tworzę, powoduje awarię aplikacji, gdy próbuję użyć spinnera. Próbowałem sprawdzić, jak wygląda "android.R.simple_spinner_dropdown_item", aby dowiedzieć się, czy czegoś brakuje.

Wszystkie moje układy, które próbowałem, były układami liniowymi lub względnymi, z tylko tekstem.

Jak mogę utworzyć niestandardowy układ wyskakujący po wybraniu pokrętła?

Odpowiedz

22

row.xml skonfigurować układ na każdym rzędzie (w tym przypadku: jedno zdjęcie i tekst każdego wiersza):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/icon"/> 

    <TextView 
     android:id="@+id/weekofday" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

Java:

public class AndroidCustomSpinner extends Activity { 

String[] DayOfWeek = {"Sunday", "Monday", "Tuesday", 
    "Wednesday", "Thursday", "Friday", "Saturday"}; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Spinner mySpinner = (Spinner)findViewById(R.id.spinner); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     R.layout.row, R.id.weekofday, DayOfWeek); 
     mySpinner.setAdapter(adapter); 
    } 
} 
+0

nie miałem czasu wczoraj. redagowałem mój post :) – Prexx

+2

jest link zepsuty? Nie mogę zobaczyć samouczka. – alaeri

+0

Tak, martwy link ... –

Powiązane problemy