1

我在带有单选项目模式的警报对话框中显示项目列表,没有任何问题。如果长度超过最大宽度大小,我如何在两行中显示每个项目的文本。列表项是动态加载的,所以我们不能通过 \n 断点来编辑它们。

任何人都可以帮我解决这个问题。

提前赞赏。

谢谢

萨蒂什


感谢您的回复,我在这里使用 AlertDialog.Builder 显示带有默认选项的对话框

AlertDialog.Builder builder=new AlertDialog.Builder(this);
     builder.setTitle("Select the Dealershipname");

     builder.setSingleChoiceItems(items, selectedDealershipname , new OnClickListener() 
     { 
       @Override
       public void onClick(DialogInterface dialog, int which) 
       {


          dialog.cancel();

       }
       });

     builder.show();

在这里,我没有使用任何 android.R.id.Text1 类型的布局。那么如何在这里更改 textview 的属性。

4

2 回答 2

2

您可能会更好地实现自定义 ArrayAdapter,您可以在其中以编程方式在适配器内更改列表项的布局。请参阅此处:自定义 ArrayAdapter 教程

除了自定义适配器之外,您还可以将android.R.layout.simple_list_item_single_choice其用作传递给 ArrayAdapter 的布局。它仍将android.R.id.text1用于其 TextView,并将自动处理 RadioButton 而无需您进一步干预。

于 2012-06-05T20:23:37.627 回答
1

只需在对话框列表内的 TextViews 上使用 setSingleLine(false)。您可以使用自定义 ArrayAdapter 获取对 textview 的引用:

        String[] items = {"foo foo foo foo foo foo foo", "bar bar bar bar bar bar", "foobar foobar foobar foobar foobar foobar"};

        ListAdapter adapter = new ArrayAdapter<String>(this,
                android.R.layout.select_dialog_item, android.R.id.text1, items) {
            public View getView(int position, View convertView, ViewGroup parent) {
                // User super class to create the View
                View v = super.getView(position, convertView, parent);

                // TextView title =
                // (TextView)v.findViewById(android.R.id.title);
                TextView tv = (TextView) v.findViewById(android.R.id.text1);

                tv.setSingleLine(false);

                return v;
            }
        };
于 2012-05-28T15:04:57.647 回答