我正在尝试制作一个完全自定义的微调器。我在按下它时弹出布局时遇到了困难。这是我的适配器代码:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.my_array, R.layout.spinnertext);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
根据我在文档中看到的内容,布局使用了由行设置的apears:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
虽然每次我将其更改为我制作的新布局时,当我尝试使用微调器时,它会使应用程序失败。我试图寻找“android.R.simple_spinner_dropdown_item”的样子,以便弄清楚我是否可能遗漏任何东西。
我尝试的所有布局都是线性或相对布局,只有textView。
如何在选择微调器时弹出自定义布局?
答案 0 :(得分:23)
row.xml在每一行上设置布局(在这种情况下:每行一个图像和文本):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"/>
<TextView
android:id="@+id/weekofday"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
爪哇:
public class AndroidCustomSpinner extends Activity {
String[] DayOfWeek = {"Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.row, R.id.weekofday, DayOfWeek);
mySpinner.setAdapter(adapter);
}
}