0

我想设置微调器的位置。我有一个适配器的字符串数组,即

       final String[] cat = { "Highest", "Lowest", "Most Recent"};

但我希望我的微调器最初显示一个空白。所以我尝试了这个。

       mSpinner.setSelection(-1);

但这并不能解决我的问题。任何想法如何做到这一点?非常需要和感谢帮助。谢谢。

更新: 我的代码:

    private void displayDialog() {
    // TODO displayDialog
    final ArrayAdapter<String> adp = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, sortBy);

    LayoutInflater li = LayoutInflater.from(this);
    View promptsView = li.inflate(R.layout.dialog_layout, null);

    promptsView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));

    final Spinner mSpinner= (Spinner) promptsView
            .findViewById(R.id.spDialog);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setTitle("Sort By...");
    builder.setIcon(R.drawable.launcher);

    mSpinner.setAdapter(adp);
    mSpinner.setSelection(-1);
    mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> parent, View v,
            int pos, long id) {
        strSpinner = mSpinner.getSelectedItem().toString();

        if(strSpinner.equals("Highest Price")){
            highest.setTypeface(Typeface.DEFAULT_BOLD);
            lowest.setTypeface(Typeface.DEFAULT);
            location.setTypeface(Typeface.DEFAULT);
            price = dbHelper.sortHighestPrice();

            adapter = new MyCustomAdapter(imgs, text, price);
            lv.setAdapter(adapter);
            adapter.notifyDataSetChanged();

        } else if (strSpinner.equals("Lowest Price")){
            highest.setTypeface(Typeface.DEFAULT);
            lowest.setTypeface(Typeface.DEFAULT_BOLD);
            location.setTypeface(Typeface.DEFAULT); 
            price = dbHelper.sortLowestPrice();

            adapter = new MyCustomAdapter(imgs, text, price);
            lv.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        } else if (strSpinner.equals("Location")) {
            highest.setTypeface(Typeface.DEFAULT);
            lowest.setTypeface(Typeface.DEFAULT);
            location.setTypeface(Typeface.DEFAULT_BOLD);
        } else {
            Log.d("Default", "Default");
        }
    }
4

3 回答 3

1

将您的第一个项目设为空白。

final String[] cat = {"", "Highest", "Lowest", "Most Recent"};
于 2013-10-30T12:03:21.050 回答
0

将您的第一项设为空白并设置微调器的选择默认为 0。

于 2013-10-30T12:04:37.893 回答
0

将 Spinner 默认值位置设置为 -1。

  1. 覆盖微调器类。
  2. 覆盖setAdapter()方法。您可以将位置设置为-1。

请点击链接了解详情:

如何使用初始文本“选择一个”制作 Android Spinner

于 2016-11-06T13:56:53.103 回答