Android 微调器阵列自适应程序与自定义布局一起崩溃

Android 微调器阵列自适应程序与自定义布局一起崩溃,android,spinner,adapter,Android,Spinner,Adapter,我正在尝试使用自定义微调器/阵列适配器。以下是我的代码: myspinner=(Spinner)findViewById(R.id.myspinner); myadapter=new ArrayAdapter<String>(this,R.layout.mytextview,R.id.mytv,sample_data); myadapter.setDropDownViewResource(android.R.layout.simple_spinner_drop

我正在尝试使用自定义微调器/阵列适配器。以下是我的代码:

    myspinner=(Spinner)findViewById(R.id.myspinner);
    myadapter=new ArrayAdapter<String>(this,R.layout.mytextview,R.id.mytv,sample_data);
    myadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    myspinner.setOnItemSelectedListener(this);
    myspinner.setAdapter(myadapter);
myspinner=(微调器)findviewbyd(R.id.myspinner);
myadapter=new ArrayAdapter(这个,R.layout.mytextview,R.id.mytv,示例_数据);
myadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
setOnItemSelectedListener(这个);
setAdapter(myadapter);
以下是包含mytv的自定义布局mytextview:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/mylayout" android:layout_width="match_parent" android:layout_height="wrap_content">
        <View android:layout_width="match_parent" android:layout_height="15dip" android:id="@+id/myview1" android:background="@color/bordertop"></View>
        <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="30dip" android:id="@+id/mytv"></TextView>
        <View android:layout_width="match_parent" android:layout_height="15dip" android:id="@+id/myview2" android:background="@color/borderbottom"></View>
    </LinearLayout>


当我按下旋转键打开弹出窗口时,Android崩溃了。当我注释掉setDropDownViewResource方法时,come逻辑工作得非常好。我仍然不明白ViewSetDropDownViewResource实际上设置了什么。有人能告诉我默认情况下的样子吗。而且,如果要用自定义布局覆盖它,布局是否需要具有特定的结构?

以下是我通常用于微调器的内容:

Spinner distancespinner = (Spinner) findViewById(R.id.distance);
ArrayAdapter<CharSequence> distanceadapter = ArrayAdapter.createFromResource(
    this, R.array.distance, android.R.layout.simple_spinner_item);
distanceadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
distancespinner.setAdapter(distanceadapter);
distancespinner.setOnItemSelectedListener(new distanceSelector());
微调器距离微调器=(微调器)findViewById(R.id.distance);
ArrayAdapter distanceadapter=ArrayAdapter.createFromResource(
这个,R.array.distance,android.R.layout.simple\u微调器\u项);
distanceadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
distancespinner.setAdapter(distanceadapter);
setOnItemSelectedListener(新的distanceSelector());
(显然,用你想要的东西来代替距离)


在我看来,你的问题在于:

myadapter=new ArrayAdapter<String>(this,R.layout.mytextview,R.id.mytv,sample_data);
myadapter=newarrayadapter(这个,R.layout.mytextview,R.id.mytv,示例数据);
但是我不知道,你的
ArrayAdapter
是基于而不是我现有的,并且符合“android.R.layout.simple_spinner_item ID引用平台定义的标准微调器外观的布局。然后调用setDropDownViewResource(int)来定义小部件打开时每个项目的外观(simple_spinner_dropdown_项是平台定义的另一个标准布局)。”

我想如果你想定制你的微调器,
.setDropDownViewResource();
就是你要做的

myadapter=new ArrayAdapter<String>(this,R.layout.mytextview,R.id.mytv,sample_data);