[英]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.