问题是关于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();
如果我在提交之前没有点击复选框,它会崩溃的原因吗?
答案 0 :(得分:1)
在微调器中分配TextView
文本可能是个问题。尝试:
String urlListSelected = spinURLList.getSelectedItem().toString();