直接在布局xml中填充微调器

是否有可能在布局xml中填充一个Spinner的选项? 这页build议我应该使用ArrayAdapter? 看起来很尴尬不能做到这一点..

我不确定这件事,但是试试看吧。

在你的strings.xml中定义:

<string-array name="array_name"> <item>Array Item One</item> <item>Array Item Two</item> <item>Array Item Three</item> </string-array> 

在你的布局中:

 <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true" android:entries="@array/array_name" /> 

我听说这并不总是在devise师的工作,但它编译好。

定义这个在你的String.xml文件和数组的名字是你想要的,比如Weight

 <string-array name="Weight"> <item>Kg</item> <item>Gram</item> <item>Tons</item> </string-array> 

而这个代码在你的layout.xml中

 <Spinner android:id="@+id/fromspin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:entries="@array/Weight" /> 

在你java文件getactivity是用在片段,如果你在活动中写的代码,然后删除getactivity

 a = (Spinner) findViewById(R.id.fromspin); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this.getActivity(), R.array.weight, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); a.setAdapter(adapter); a.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { if (a.getSelectedItem().toString().trim().equals("Kilogram")) { if (!b.getText().toString().isEmpty()) { float value1 = Float.parseFloat(b.getText().toString()); float kg = value1; c.setText(Float.toString(kg)); float gram = value1 * 1000; d.setText(Float.toString(gram)); float carat = value1 * 5000; e.setText(Float.toString(carat)); float ton = value1 / 908; f.setText(Float.toString(ton)); } } public void onNothingSelected(AdapterView<?> parent) { // Another interface callback } }); // Inflate the layout for this fragment return v; } 

关于第一条评论:如果你这样做,你会得到一个错误(在Android Studio中)。 这是关于它脱离Android的命名空间。 如果你不知道如何解决这个错误,请查看下面的例子。 希望这可以帮助!

示例 – 之前:

 <string-array name="roomSize"> <item>Small(0-4)</item> <item>Medium(4-8)</item> <item>Large(9+)</item> </string-array> 

示例 – 之后:

 <string-array android:name="roomSize"> <item>Small(0-4)</item> <item>Medium(4-8)</item> <item>Large(9+)</item> </string-array>