标签: android-spinner

使用文本和值从spinner sqlite加载

我有一个spinner加载数据到sqlite

我在数据库中有字段ID和字段名称.

private void loadSpinnerDataHama() {
        // database handler
        DatabaseSpinner db = new DatabaseSpinner(getApplicationContext()); 
        // Spinner Drop down elements
        List<String> lables = db.getAllLabels();
        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, lables);
        // Drop down layout style - list view with radio button
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // attaching data adapter to spinner
        spin2.setAdapter(dataAdapter);
    }

    public List<String> getAllLabels(){
    List<String> labels = new ArrayList<String>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_LABELS;

    SQLiteDatabase db = this.getReadableDatabase(); …
Run Code Online (Sandbox Code Playgroud)

android android-spinner

8
推荐指数
1
解决办法
2万
查看次数

如何通过文本内部设置微调器选择

我准备了一个表单,我必须使用相同的页面添加详细信息和编辑详细信息.添加详细信息时,所有字段都将为空,并且微调器选择将设置为"无选择".现在我想设置我将从前一个活动传递的项目的微调器选择.怎么实现这个?由于spinner没有任何类似的方法,setSelection(String string); 还是有其他办法,我可以实现这个机制......

有人请帮助我......

android android-spinner

8
推荐指数
2
解决办法
2万
查看次数

SpinnerPreference?(如何在首选项屏幕中嵌入微调器)

布局中植入微调器很简单,因为有很多样本和教程显示如何做到这一点.

但是如何在PreferenceScreen中植入微调器呢?

这可能/可行吗?

注意:我已经进行了广泛的搜索.没有"SpinnerPreference"这样的东西.我希望有.

android android-layout preferencescreen android-spinner

8
推荐指数
1
解决办法
3280
查看次数

更改holo微调文本颜色

我在Holo主题对话框中有一个微调器,我正在尝试更改文本颜色,因为它很难阅读:

对话框微调文本颜色

我查看了android styles.xml以及许多其他答案,并且相信我正确地设置了自定义样式; 但它只是没有被捡起来.

这是微调器所在的对话框布局文件的摘录:

<Spinner
        android:id="@+id/spn_Type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:entries="@array/dose_type_options"
        style="@style/DialogSpinner" />
Run Code Online (Sandbox Code Playgroud)

这些是values-v14文件夹中styles.xml中的相关条目:

<style name="DialogSpinner" parent="@android:style/Widget.Holo.Spinner">
        <item name="android:spinnerItemStyle">@style/MySpinnerItem</item>
</style>

<style name="MySpinnerItem" parent="android:Widget.Holo.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/MyTextAppearanceSpinnerItem</item>
</style>

<style name="MyTextAppearanceSpinnerItem" parent="android:TextAppearance.Holo.Widget.TextView.SpinnerItem">
    <item name="android:textColor">#FFF</item>
</style>
Run Code Online (Sandbox Code Playgroud)

通过使用以下对话框本身被强制为Holo黑暗主题:

<style name="FibroDialog" parent="@android:style/Theme.Holo.Dialog">

</style>
Run Code Online (Sandbox Code Playgroud)

任何人都可以确定为什么微调文本不是白色的?

我看过其他解决方案,建议改变代码中的颜色,但这个应用程序支持2.3.*向上,所以对于那些非全息版本黑色文本很好,因此尝试按样式进行.

谢谢

使用Woda下面的答案更新

微调器的初始值的文本颜色现在是白色的,这对于突出显示用户有一个微调器非常重要:

对话框微调文本颜色2

但是可选项目的文本颜色仍然是黑色.我想这不是一个大问题,至少通过将初始文本变为白色来确认微调器的存在.但我很想知道为什么这些物品仍然是黑色的,以及如何将它们变成白色.

android android-layout android-spinner android-styles

8
推荐指数
1
解决办法
1万
查看次数

Android中的Spinner主题很暗

我试图奇怪地改变工具栏微调器下拉主题这没有发生.当我点击微调器时,它总是会变暗.我希望背景为灰色,文字为黑色.

我没有任何动作栏.我通过工具栏设置一切.

因此我尝试了以下方法:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <RelativeLayout
        android:id="@+id/relativeLayoutID"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="left|center"
            android:text="@string/register_title"
            android:textColor="@color/whiteText"
            android:textSize="@dimen/text_size_medium" />

        <Spinner
            android:id="@+id/spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:minWidth="80dp"
            android:spinnerMode="dropdown"
            android:visibility="gone" />

    </RelativeLayout>

</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

风格xml:

 <resources>

<style name="Theme.default" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="md_widget_color">@color/numbertext</item>
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:colorPrimary">@color/colorPrimary</item>
    <item name="android:windowContentOverlay">@drawable/toolbar_dropshadow</item>
    <item name="android:windowBackground">@android:color/white</item>
    <item name="android:editTextColor">@android:color/background_dark</item>
    <item name="android:textColor">@android:color/background_dark</item>
    <item name="colorControlNormal">@android:color/background_dark</item>
    <item name="colorControlActivated">@color/orangeText</item>
    <item name="colorControlHighlight">@color/orangeText</item>
    <item name="android:statusBarColor">@color/colorPrimary</item>

</style>

<style name="Widget.MyApp.HeaderBar.Spinner" parent="Widget.AppCompat.Light.Spinner.DropDown.ActionBar">
    <item name="android:background">?android:selectableItemBackground</item>
    <item name="android:dropDownSelector">?android:selectableItemBackground</item>
    <item name="android:divider">@color/blackText</item>
    <item name="android:overlapAnchor">true</item> …
Run Code Online (Sandbox Code Playgroud)

android android-spinner android-toolbar

8
推荐指数
1
解决办法
1万
查看次数

如何在Android中将默认值设置为微调器下拉列表?

我需要将默认值文本"选择你的设备"值设置为我的微调器下拉列表,我把它作为列表项,所以它作为一个下拉列表项,我隐藏下拉列表,因为这我的下拉列表中有一个空白区域.

我该怎么做?

图片

这是我用过的代码

mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

        /*Setup a Spinner*/
        mToolbarSpinner = (Spinner) findViewById(R.id.spinner_toolbar);

        /*Manage the spinner*/
        mToolbarSpinnerNavigationItems = new ArrayList<SpinnerNavItem>();

        mToolbarSpinnerNavigationItems.add(new SpinnerNavItem("Select your Seebo", R.drawable.deviceonline));

        /*setting the mToolbarSpinnerNavigationItems to list_item_title_navigation.xml*/
        mArrayAdapter = new ArrayAdapter(this, R.layout.list_item_title_navigation,mToolbarSpinnerNavigationItems){
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                // remember to inflate custom layout for spinner item
                // then set anything you want here
                // remember to use convertView.findViewById(), not just findViewById()

                // this is an example …
Run Code Online (Sandbox Code Playgroud)

android android-spinner

8
推荐指数
2
解决办法
4万
查看次数

Android:如果已选中,则点击的微调器项目不起作用

我有一个带有onItemSelected交互的Spinner,但是Api规范如何说:

This callback is invoked only when the newly selected position is different from the 
previously selected position or if there was no selected item.
Run Code Online (Sandbox Code Playgroud)

我需要删除此限制,我希望如果用户选择相同的元素也调用回调.怎么做?
有人做过同样的事吗?

对此有任何想法都会很明显..

android android-spinner

7
推荐指数
1
解决办法
2305
查看次数

如何在spinner android中删除默认值?

我使用JSON从数据库中获取值并将它们插入到微调器中.此过程成功运行.但是当我点击旋转器时,我收到了两次Spinner提示; 如何从微调器中删除第一个默认值...

这是快照: - 希望你理解我的问题:在此输入图像描述

这是我的代码: -

private class GetCategories extends AsyncTask<Void, Void, Void> {
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... arg0) {
        ServiceHandler jsonParser = new ServiceHandler();
        String json = jsonParser.makeServiceCall(URL_CATEGORIES,
                ServiceHandler.GET);
        if (json != null) {
            try {
                JSONObject jsonObj = new JSONObject(json);
                if (jsonObj != null) {
                    JSONArray categories = jsonObj
                            .getJSONArray("categories");
                    categoriesList.clear();
                    for (int i = 0; i < categories.length(); i++) {
                        JSONObject catObj = (JSONObject) categories.get(i);
                        Category cat = new Category( …
Run Code Online (Sandbox Code Playgroud)

android android-spinner

7
推荐指数
1
解决办法
3710
查看次数

定制微调器的间距

旋转器提供两种状态.第一个和默认状态(状态A)显示当前选定的值.第二个(状态B)显示触摸微调器显示时的下拉菜单.

状态A和B的例子

默认情况下,左填充被添加到在状态A和B中显示的项目我想删除它被显示在当前所选的值(状态A),但保留它当项目被显示在下拉菜单中(状态B) .

由于填充设置与CheckedTextView中创建微调时指定的布局中,我第一次尝试是传递给微调构造包含空填充一个CheckedTextView自定义布局.这样,左边的填充在状态A中消失,但也在状态B中消失.但是,我的目标是将其保留在状态A.

我的第二次尝试是在我的主题定义中自定义android:dropDownSpinnerStyle.由于更改android:dropDownSpinnerStyle的背景颜色仅更改状态A中项目的背景颜色,我的想法是用负值覆盖marginLeft或paddingLeft.不幸的是,它没有任何效果.

鉴于负边距/填充似乎没有被考虑在内,我尝试了相反的做法.首先,我使用了自定义项目布局(如我第一次尝试所述),以便删除两个状态(A和B)上的左边距.其次,我已经为属性android定义了一个自定义样式:dropDownListViewStyle.不幸的是,在最后一个属性中使用正的marginLeft值无效.因此,我设置了paddingLeft.它工作,并允许我只获得状态B的左边距.但是,左侧空间也适用于背景触摸颜色(参见下图).

在此输入图像描述

我认为如果我想要完全填充下拉菜单宽度的触摸背景颜色,则只应更改状态A的样式.任何想法,建议或例子都受到欢迎.

以下是我第三次尝试的主题定义:

<style name="Theme.App.Base" parent="Theme.App">
    ...
    <item name="android:dropDownListViewStyle">@style/Widget.Spinner.DropDown.ListView</item>
</style>

<style name="Widget.Spinner.DropDown.ListView" parent="Widget.AppCompat.ListView.DropDown">
    <item name="android:paddingLeft">16dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-layout android-spinner drop-down-menu

7
推荐指数
1
解决办法
1万
查看次数

如何在不使用textview的情况下更改微调器中的文本颜色

我想在不使用的情况下textView更改微调器的文本颜色,我已经搜索并找到了一些教程Android:Spinner小部件的文本颜色属性隐藏在哪里?

但最重要的是他们已经习惯了textView.

<Spinner 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:entries="@array/Gender_Selection_arrays" 
     android:prompt="@string/Gender_Selection"
     android:id="@+id/gendersel"
     android:popupBackground="#67656c"/>
Run Code Online (Sandbox Code Playgroud)

我知道这段代码不会改变文字颜色.

我不知道该怎么做,请指导我这样做.

任何帮助都会很明显.

android android-layout android-spinner

7
推荐指数
1
解决办法
2万
查看次数