Android:自定义微调器布局

时间:2012-01-20 19:34:58

标签: android android-layout

我正在尝试制作一个完全自定义的微调器。我在按下它时弹出布局时遇到了困难。这是我的适配器代码:

    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。

如何在选择微调器时弹出自定义布局?

1 个答案:

答案 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);
   }
}