【问题标题】:Android - spinner in action bar - layout fileAndroid - 操作栏中的微调器 - 布局文件
【发布时间】:2014-05-30 06:05:20
【问题描述】:

我正在尝试在操作栏中实现微调器。

我的活动 onCreate() 中有以下内容:

SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this,
            R.array.action_list, R.layout.spinner_item);

action_list 定义为 (res/values/arrays.xml):

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string-array name="action_list">
      <item>Layout 1</item>
      <item>Layout 2</item>
      <item>Layout 3</item>
  </string-array>
</resources>

spinner_item 定义为 (res/layouts/spinner_item.xml):

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

   <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView" />

</LinearLayout>

我收到以下异常:

 java.lang.ClassCastException: android.widget.LinearLayout cannot be cast 
 to android.widget.TextView 
 at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:379)

谁能帮我解决这个问题?我做错了什么?

【问题讨论】:

    标签: android android-actionbar spinner


    【解决方案1】:

    解决此问题的最快方法是让spinner_item.xml 包含一个TextView

    ArrayAdapter 的默认实现用对应项的字符串值填充TextView

    TextView 可以是整个视图,也可以是布局中的特定视图,但对于最后一种情况,您需要将视图 ID 作为参数传递(例如,请参见 ArrayAdapter (Context context, int resource, int textViewResourceId) 构造函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多