Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Spinner显示文本问题_Java_Android_Android Spinner - Fatal编程技术网

Java Android Spinner显示文本问题

Java Android Spinner显示文本问题,java,android,android-spinner,Java,Android,Android Spinner,您好,我有一个问题,我的活动中的文本大小显示不正确,下拉列表本身很大(下图),这是我想要的,但是当下拉列表未打开时,它有小文本(上图)。这是微调器从中提取的xml布局 simple_spinner_dropdown_item.xml <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layou

您好,我有一个问题,我的活动中的文本大小显示不正确,下拉列表本身很大(下图),这是我想要的,但是当下拉列表未打开时,它有小文本(上图)。这是微调器从中提取的xml布局

simple_spinner_dropdown_item.xml
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="50sp"
    android:gravity="left"
    android:textColor="#000000"
    android:padding="5dip"
    android:textStyle="bold"/>
simple\u spinner\u dropdown\u item.xml
这是显示微调器的菜单的xml

main_menu.xml
<Spinner
    android:id="@+id/spinnerMainMenu"
    android:layout_width="784dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.072"
    tools:layout_editor_absoluteX="8dp" />
main_menu.xml
最后是如何显示的代码

MainMenu.java
final Spinner mainMenuDrpDwn = findViewById(R.id.spinnerMainMenu);
    String[] machines = new String[]{"215 DT", "420 DT", "215 CANNAGIN"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, machines);
    adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
    mainMenuDrpDwn.setAdapter(adapter);
MainMenu.java
最终微调器mainMenuDrpDwn=findViewById(R.id.spinnerMainMenu);
字符串[]机器=新字符串[]{“215 DT”、“420 DT”、“215 CANNAGIN”};
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u下拉菜单\u项,机器);
adapter.setDropDownViewResource(R.layout.simple\u微调器\u下拉菜单\u项);
mainMenuDrpDwn.setAdapter(适配器);


在适配器中使用相同的布局文件

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simple_spinner_dropdown_item, machines);

扩展dr3k的答案,我在源代码中发现:

4742
...
4763
4766
...
4772

为此,让我们更详细地了解适配器的概念,绑定微调器布局文件和数据到微调器的适配器包含两个布局文件。一个是布局资源,您在
阵列适配器
初始化过程中传入了该资源,即

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, machines);
现在的问题是,您正在传入一个自定义的
下拉列表资源
,因此您正在使下拉列表看起来像所需的那样,但您正在传入视图的标准布局文件,即
android.R.layout.simple\u spinner\u dropdown\u项
。因此,若要解决此问题,您也可以为普通视图传递相同的下拉资源(如果您希望这样做),否则您可以创建另一个具有所需属性的布局,并按照以下代码中的方式传递该布局:

自定义\下拉\微调器\项目

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="false"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    android:ellipsize="marquee"
    android:textSize="25sp"
    android:background="@android:color/white"
    android:textColor="@color/colorAccent"
    android:fontFamily="sans-serif-smallcaps"/>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text2"
    style="?android:attr/spinnerItemStyle"
    android:background="@android:color/holo_blue_light"
    android:singleLine="false"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:textAlignment="inherit"
    android:gravity="center"
    android:textSize="50sp"
    android:textColor="@color/colorPrimary"/>

自定义微调器项目

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="false"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    android:ellipsize="marquee"
    android:textSize="25sp"
    android:background="@android:color/white"
    android:textColor="@color/colorAccent"
    android:fontFamily="sans-serif-smallcaps"/>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text2"
    style="?android:attr/spinnerItemStyle"
    android:background="@android:color/holo_blue_light"
    android:singleLine="false"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:textAlignment="inherit"
    android:gravity="center"
    android:textSize="50sp"
    android:textColor="@color/colorPrimary"/>

将其设置为微调器:

ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(this,
                R.array.educational_qualification_orig_array, R.layout.custom_spinner_item);
        arrayAdapter.setDropDownViewResource(R.layout.custom_drop_down_spinner_item);
        spinner.setAdapter(arrayAdapter);
ArrayAdapter ArrayAdapter=ArrayAdapter.createFromResource(此,
R.array.Education\u qualification\u orig\u array,R.layout.custom\u spinner\u item);
arrayAdapter.setDropDownViewResource(R.layout.custom_drop_down_微调器_项);
spinner.setAdapter(阵列适配器);
处于未展开状态的结果微调器项如下所示


非常感谢您,因为我使用了一个sting作为显示的文本,所以我必须编辑您的适配器代码以适应。ArrayAdapter=新的ArrayAdapter(此,R.layout.simple\u微调器\u项,机器)
ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(this,
                R.array.educational_qualification_orig_array, R.layout.custom_spinner_item);
        arrayAdapter.setDropDownViewResource(R.layout.custom_drop_down_spinner_item);
        spinner.setAdapter(arrayAdapter);