我正在开发一个使用spinner的应用程序:
s1=(Spinner)findViewById(R.id.sp1);
s2=(Spinner)findViewById(R.id.sp2);
s3=(Spinner)findViewById(R.id.sp3);
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
List<Integer> list3 = new ArrayList<Integer>();
for (int i=1;i<=31;i++)
{
list1.add(i);
}
for (int i=1;i<=12;i++)
{
list2.add(i);
}
for (int i=1917;i<=2017;i++)
{
list3.add(i);
}
ArrayAdapter<Integer> dataAdapter1 = new ArrayAdapter<Integer>(this,
android.R.layout.simple_spinner_item, list1);
ArrayAdapter<Integer> dataAdapter2 = new ArrayAdapter<Integer>(this,
android.R.layout.simple_spinner_item, list2);
ArrayAdapter<Integer> dataAdapter3 = new ArrayAdapter<Integer>(this,
android.R.layout.simple_spinner_item, list3);
dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(dataAdapter1);
s2.setAdapter(dataAdapter2);
s3.setAdapter(dataAdapter3);
final int day = (Integer)s1.getSelectedItem();
final int month =(Integer)s2.getSelectedItem() ;
final int year = (Integer)s3.getSelectedItem();
xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="193dp"
android:layout_height="wrap_content"
android:text="Identifiant"
android:layout_weight="0.05" />
<EditText
android:id="@+id/ed1"
android:layout_width="193dp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="193dp"
android:layout_height="wrap_content"
android:text="Mot de passe"
android:layout_weight="0.06" />
<EditText
android:id="@+id/ed2"
android:layout_width="193dp"
android:layout_height="wrap_content"
android:inputType="textPassword"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="192dp"
android:layout_height="wrap_content"
android:text="Confirmer mot de passe"
android:layout_weight="0.06" />
<EditText
android:id="@+id/ed3"
android:layout_width="193dp"
android:layout_height="wrap_content"
android:inputType="textPassword"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="192dp"
android:layout_height="wrap_content"
android:text="Date de naissance"
android:layout_weight="0.06" />
<Spinner
android:id="@+id/sp1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>
<Spinner
android:id="@+id/sp2"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>
<Spinner
android:id="@+id/sp3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>
</LinearLayout>
<Button
android:id="@+id/button2"
android:layout_width="259dp"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:layout_marginTop="70dp"
android:text="Valider" />
</LinearLayout>
但是当我打印年份时,它不打印我实际选择的项目(打印2017年)。我该怎么办?我用旋转器方法做错了吗?提前致谢
答案 0 :(得分:0)
final int day = (Integer)s1.getSelectedItem();
final int month =(Integer)s1.getSelectedItem() ;
final int year = (Integer)s1.getSelectedItem();
应该是:
final int day = (Integer)s1.getSelectedItem();
final int month =(Integer)s2.getSelectedItem() ;
final int year = (Integer)s3.getSelectedItem();
答案 1 :(得分:0)
final int day = (Integer) s1.getSelectedItem();
final int month =(Integer) s2.getSelectedItem() ;
final int year = (Integer) s3.getSelectedItem();
答案 2 :(得分:0)
s1,s2和s3是三种不同的微调器。但是你试图使用s1本身来获取他们选择的值。所以,为了获得一年,你应该使用s3。
答案 3 :(得分:0)
避免复制粘贴。 它应该是:
final int day =(整数) s1 .getSelectedItem();
final int month =(整数) s2 .getSelectedItem();
final int year =(整数) s3 .getSelectedItem();