Android中的默认旋转器样式

3

我正在开发一款安卓应用,其中我正在使用simpleAdaptor从数据库中填充一个下拉列表。

SimpleCursorAdapter deptype =new SimpleCursorAdapter(this,R.layout.dbspinner, depcur, from, to);   dep.setAdapter(deptype);

数据加载正常,但我不喜欢旋转器的“外观”。
我使用的旋转器是:
 ArrayAdapter<CharSequence> practype = ArrayAdapter.createFromResource(this,R.array.practice, android.R.layout.simple_spinner_item);

在侧边添加单选按钮会使界面更美观,而我得到的只是通过线条分隔内容的显示方式,这样并不美观。

我尝试了各种更改dbspinner布局的方法,但没有一种能与Android中默认的股票微调器相媲美。我还试图用android.R.layout.simple_spinner_item替换dbspinner,但我得到的只是带有单选按钮但没有文本的空白框。

如何获得股票默认微调器?

我应该将数据库内容加载到字符串中,并提供给数组适配器吗?如果是这样,怎么做呢?

2个回答

3

simple_spinner_item被定义为:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    style="?android:attr/spinnerItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee" />

如果要将其用作项目视图,请在资源整数数组中使用"text1"作为您的id。

例如:

// Create the array containing column names
String[] columns = new String[] { "ColumnNameX" };

// Create the array containing resource ids
int[] resources = new int[] { android.R.id.text1 };

// Create the cursor adapter
mCursorAdapter = new SimpleCursorAdapter(
    MyActivity.this,
    android.R.layout.simple_spinner_item,
    data,
    columns,
    resources);

它可以工作 - 我正在使用它。确保你的数据库实际上已经填充了数据,并且你正在使用正确的列名。 - Austin Hanson
错误是找不到与给定名称匹配的资源(在“id”处,值为“@android:id/tvspin”) - 8A52
1
你需要更好地理解ID和包。不要使用不同的XML布局,使用simple_spinner_item并使用我提供的代码。它假定TextView资源ID为“android.R.id.text1”。 - Austin Hanson
嗨,我能找到我的错误,但问题仍然存在。这是我的代码:'//游标 Cursor depcur = db.rawQuery("SELECT * FROM dept_masterdata WHERE "+hsname+"=1",null); startManagingCursor(depcur); String[] from = new String[]{"department"}; int[] to = new int[] { android.R.id.text1 }; // 现在创建一个数组适配器并将其设置为使用我的行显示 // 部门 SimpleCursorAdapter deptype =new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, depcur, from, to); dep.setAdapter(deptype);' - 8A52
嗨。我明白了。非常感谢。我忘记添加这行代码 deptype.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - 8A52
显示剩余3条评论

-2
你可以使用这段代码:
  AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("Category");
        builder.setCancelable(true);
        builder.setSingleChoiceItems(CATEGORIES_TXT, mSelectedCategory, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                //new category selected
                dialog.dismiss();
            }
        });
        AlertDialog alert=builder.create();
        alert.show();

CATEGORIES_TXT 是一个 String[],mSelectedCategory 是代表所选类别的 int


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接