繁体   English   中英

Android Studio-如何使微调器中的第一个项目为空?

[英]Android studio - How to make the first item in the spinner to be empty?

正如主题所述,如何使第一个项目为空?

就像现在一样,我在微调器的第一个位置具有一个始终从一开始就选择的值。 这意味着该应用程序直接进入第二个活动,并且没有机会选择列表中的其他项目。

我已将所有字符串保存在String数组中的string.xml中。 MainActivity中的代码如下所示;

spinner = (Spinner) findViewById(R.id.spinner);
adapter = ArrayAdapter.createFromResource(this, R.array.country_names, android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        ((TextView) parent.getChildAt(0)).setText(null);
        ((TextView) parent.getChildAt(0)).setTextColor(Color.BLACK);
        ((TextView) parent.getChildAt(0)).setTextSize(23);

        Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
        String txtFromSpinner = mySpinner.getSelectedItem().toString();

        if (txtFromSpinner.equals("Denmark")) {
            //Go to Denmark activity
        }
    }

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

});

如您所见,该应用程序从MainActivity开始,但是由于丹麦是strings.xml中的第一个String,因此该应用程序直接进入“丹麦活动”。

在您的string.xml上添加一个空字符串项目,如下所示:

<string-array name="country_names">
        <item></item>
        <item>Denmark</item>

    </string-array>

更新2

或者您可以执行此setSelection(position, false); setOnItemSelectedListener(listener)之前的初始选择中

因此,将您的代码更新为:

   spinner = (Spinner) findViewById(R.id.spinner);
    adapter = ArrayAdapter.createFromResource(this, R.array.country_names, android.R.layout.simple_spinner_item);

    adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

    spinner.setAdapter(adapter);
    setSelection(0, false); 
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            ((TextView) parent.getChildAt(0)).setText(null);
            ((TextView) parent.getChildAt(0)).setTextColor(Color.BLACK);
            ((TextView) parent.getChildAt(0)).setTextSize(23);

            Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
            String txtFromSpinner = mySpinner.getSelectedItem().toString();

            if (txtFromSpinner.equals("Denmark")) {
                //Go to Denmark activity
            }
        }

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

        }
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM