首页 > 解决方案 > 如何在 android 中使用 2 spinner 进行 fpersonal orm?

问题描述

我想在我的应用程序中创建一个个人表单。用户应填写。我使用 2 个微调器(下拉按钮)来获取 2 个项目——marriage_state 和 sex_state。不幸的是,当我运行我的应用程序时,微调器不会向我显示任何内容。我能做些什么?我该如何解决?

我的xml代码:

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <Spinner
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:id="@+id/marriage"
            style="@style/Edittext_form"
            android:prompt="@string/marriage"
            android:entries="@array/marriage_state"
            android:layout_marginRight="10dp"/>

        <Spinner
              android:layout_width="0dp"
              android:layout_height="match_parent"
              android:layout_weight="1"
              android:gravity="center"
              android:id="@+id/sex"
              style="@style/Edittext_form"
              android:prompt="@string/sex"
              android:entries="@array/sex_state"
              android:layout_marginRight="10dp"/>

    </LinearLayout>

我的字符串代码:

<string name="sex">جنسیت...</string>
<string-array name="sex_state">
    <item>زن</item>
    <item>مرد</item>
</string-array>
<string name="marriage">*وضعیت تاهل...</string>
<string-array name="marriage_state">
    <item>مجرد</item>
    <item>متاهل</item>
</string-array>

我的Java代码:

public class MainActivity extends AppCompatActivity {
    private Spinner _sex, _marriage;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    _sex = (Spinner) findViewById(R.id.sex);
    _marriage = (Spinner) findViewById(R.id.marriage);

 ArrayAdapter<String> sex_spinner_adapter = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,
            R.array.marriage_state);
    _sex.setAdapter(sex_spinner_adapter);

    ArrayAdapter<String> marriage_spinner_adapter = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,
            R.array.marriage_state);
    _marriage.setAdapter(marriage_spinner_adapter);

 _sex.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                    sex = adapterView.getItemAtPosition(i).toString();
                }

                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {

                }
            });

            _marriage.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                    marriage = adapterView.getItemAtPosition(i).toString();
                }

                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {

                }

            });
 }

标签: androidspinner

解决方案


您应该创建如下所示的适配器。

ArrayAdapter<String> marriage_spinner_adapter = ArrayAdapter.createFromResource(this, R.array.marriage_state, R.layout.support_simple_spinner_dropdown_item);

//and then set adapter like below.
_marriage.setAdapter(marriage_spinner_adapter);

仅供参考:对于这两个适配器,您使用与 R.array.marriage_state 相同的数组。将它们更改为相应的数组。


推荐阅读