如何从以前“消失”的Spinner获取信息?

时间:2011-08-14 15:26:59

标签: android

问题是关于android Spinners工作时“Gone”然后再“可见”。

默认情况下,我有一个隐藏微调器的表单(“Gone”)。如果用户选中复选框,则会出现并允许选择内容。问题是当我从表单提交信息而不触及复选框(即默认值是从微调器中选择)时,App崩溃并出现空指针异常 - 尽管我将微调器设置为可见。

如果我点击复选框(甚至两次,让Spinner再次出现) - 一切正常。如果我使用隐形而不是消失,即使不触摸按钮,一切也能正常工作。

默认情况下如何使用微调器“Gone”?

这里是关于复选框行为的代码(onclick复选框):

        case R.id.checkboxUseDefaultURLList:
        {
            final CheckBox checkBoxDefaultList = (CheckBox) findViewById(R.id.checkboxUseDefaultURLList);
            final TextView textViewEmpty = (TextView) findViewById(R.id.textBlank);
            final Spinner s2 = (Spinner) findViewById(R.id.spinnerURLList);
            if (checkBoxDefaultList.isChecked()) {
                textViewEmpty.setVisibility(View.GONE); // GONE
                textViewEmpty.invalidate();
                s2.setVisibility(View.GONE); // GONE
                s2.invalidate();
                }           
            if (!checkBoxDefaultList.isChecked()) {
                textViewEmpty.setVisibility(View.VISIBLE); // VISIBLE
                textViewEmpty.invalidate();
                s2.setVisibility(View.VISIBLE); // VISIBLE
                s2.invalidate();
                }
            break;
        }

这里是我如何从Spinner获取值(在“提交”按钮的onclick中):

                    Spinner spinURLList = (Spinner) findViewById(R.id.spinnerURLList);
                spinURLList.setVisibility(View.VISIBLE);
                spinURLList.invalidate();
                spinURLList.setSelection(0);
                TextView chosenURLTV = (TextView) spinURLList.getSelectedView();
                String urlListSelected = chosenURLTV.getText().toString();

如果我在提交之前没有点击复选框,它会崩溃的原因吗?

1 个答案:

答案 0 :(得分:1)

在微调器中分配TextView文本可能是个问题。尝试:

String urlListSelected = spinURLList.getSelectedItem().toString();