我正在android工作室学习输入控件。 我在Strings.XML中使用string-array XML标记在旋转器中显示元素。 当使用r.array.phnLabels时,在Java类中传递参数时,ide显示错误,并且在运行代码时,应用程序在虚拟电话中一直停止。 下面是我的源代码和资源文件。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner)findViewById(R.id.spinner);
if(spinner != null)
spinner.setOnItemClickListener((AdapterView.OnItemClickListener) this);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.phnLabels,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
if(spinner != null)
spinner.setAdapter(adapter);
}
下面是string.xml文件
<resources>
<string name="app_name">Input Controls</string>
<string-array name="phnLabels">
<item>Work</item>
<item>Home</item>
<item>Mobile</item>
</string-array>
</resources>
下面是旋转器的布局视图组件
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="150dp"
android:layout_marginLeft="298dp"/>
您可以将以下内容传递到布局XML文件中:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/phnLabels"
/>
也可以使用以下方法在Java类中获取字符串数组:
String[] albums = getResources().getStringArray(R.array.phnLabels);
在android类中设置适配器,如:
List<String> albumsList = Arrays.asList(albums);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item,
albumsList); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout
.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
让我知道它是否有效。