很抱歉打扰你们,但我一直在努力让它工作。
我的期望:
EditText 显示提示信息。
用户点击 EditText,打开下拉菜单并选择性别。然后将其转换为字符串并放入 EditText(性别)中。
实际上的情况是: 在用户点击之前,“男性”这个下拉列表的第一个元素已经被插入到 EditText 中了。(我从未看到我的提示:“性别”)……而且当我尝试点击 EditText(性别)时,下拉菜单根本不会打开。
怎么回事?
我的代码:
private Spinner sexSpinner;
String[] arrayForSpinner = {"Male", "Female"};
//Inside OnCreate method:
sexSpinner = (Spinner)findViewById(R.id.spinner);
adapter = new ArrayAdapter<String>(this, R.layout.spinner_row, arrayForSpinner);
sexSpinner.setAdapter(adapter);
sexSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,int position, long id) {
gender.setText(sexSpinner.getSelectedItem().toString());
}
gender.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus){
sexSpinner.performClick();
}
}
});
布局:
<EditText
android:layout_width="75dp"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:focusable="false"
android:longClickable="false"
android:clickable="true"
android:inputType="date"
android:maxLines="1"
android:singleLine="true"
android:hint="Gender"
android:textColorHint="@color/white"
android:textColor="@color/white"
android:ems="10"
android:id="@+id/signup_input_gender"
android:layout_below="@+id/signup_input_birthday"
android:layout_centerHorizontal="true"
android:backgroundTint="@android:color/white"/>
<Spinner
android:background="@color/Blue"
android:id="@+id/spinner"
android:paddingLeft="0dp"
android:layout_width="75dp"
android:layout_height="40dp"
android:layout_marginRight="40dp"
android:layout_marginBottom="6dp"
android:layout_below="@+id/linearlayout"
android:visibility="invisible" />