【问题标题】:How to Initialize the Spinner values with String array如何使用字符串数组初始化 Spinner 值
【发布时间】:2016-12-11 03:07:16
【问题描述】:

我有一个Spinner s 对象,我想用字符串数组初始化它,然后我想在AlertDialog.Builder 中设置这个布局

btnImg.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        View view = getLayoutInflater().inflate(R.layout.sub_activity_menu_item_addcart, null);
        Spinner s = (Spinner)view.findViewById(R.id.sub_activity_mene_item_addcart_quantity);

        String[] items = new String[]{
            "1",  "2",  "3",  "4",  "5", 
            "6",  "7",  "8",  "9",  "10", 
            "11", "12", "13", "14", "15", 
            "16", "17", "18", "19", "20", 
        };

        /* HOW ? */
        // s.setValues(items); ????

        alertBox.setView(view);
        alertBox.setTitle("Add to Cart")
        .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        alertBox.show();

    }
});

步骤

  • 我想通过getLayoutInflater()获取Layout
  • 之后在Layout 中填充Spinner
  • 最后我想在AlertDialog.Builder中添加这个布局

我在互联网上搜索过这个问题,但没有找到任何合适的解决方案。每个人都建议使用 ArrayAdapter 填充微调器,但我没有使用 ArrayAdapter 的选项

【问题讨论】:

  • 除了这样你为什么不做一个包含微调器的警报对话框呢?效率也会很高。

标签: android spinner android-alertdialog


【解决方案1】:

另一种填充 Spinner 的方法是直接从 xml 指定字符串数组。在 Spinner 布局文件中使用 entries 属性

你的微调器

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="@dimen/spinner_height"
    android:id="@+id/yourid"
    android:spinnerMode="dropdown"
    android:entries="@array/context_view"/>

例如您的数据存储在 strings.xml 中

<string-array name="context_view">
    <item>ScrollView</item>
    <item>WebView</item>
</string-array>

【讨论】:

    【解决方案2】:

    您可以创建一个带有微调器的警报对话框,就像:

    final View update_layout = getLayoutInflater().inflate(
            R.layout.update_layout, null);
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Your title");
    
    
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
    
        }
    });
    
    Spinner spinner = (Spinner) update_layout.findViewById(R.id.sub_activity_mene_item_addcart_quantity);
    String[] items = { "1",  "2",  "3",  "4",  "5", 
            "6",  "7",  "8",  "9",  "10", 
            "11", "12", "13", "14", "15", 
            "16", "17", "18", "19", "20" };
    
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(HomeScreen.this,
            android.R.layout.simple_spinner_dropdown_item, items);
    
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    
    builder.setView(update_layout);
    
    AlertDialog alert = builder.create();
    alert.show();
    

    【讨论】:

      【解决方案3】:
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,items);
      spinner.setAdapter(adapter);
      

      【讨论】:

      • 我如何使用android.R.layout.simple_spinner_item 使用充气机获取布局 ..?
      猜你喜欢
      • 2021-05-10
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 2019-01-03
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多