2

我正在尝试将数组列表的内容添加到 AlertDialog,但出现错误:

java.lang.IllegalStateException: Could not execute method of the activity

这是我遇到问题的代码片段:

 public void ShowOnlineUserDialog(){
     CharSequence[] users = {_onlineUsers.get(1), _onlineUsers.get(2),    _onlineUsers.get(3), _onlineUsers.get(4)};
     AlertDialog.Builder onlineUser = new AlertDialog.Builder(this);
     onlineUser.setTitle("Online Users");
     onlineUser.setItems(users, new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            System.out.println("User clicked!");

        }
    });
     onlineUser.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();

        }
    });
     onlineUser.show();
 }

此外,是否有更有效的方法可以添加到警报框,for 循环?我很抱歉,但我缺乏数组知识让我失望。

任何帮助都会很棒!谢谢!

编辑:如果我这样设置我的代码:

 String user1 = _onlineUsers.get(1);
     String user2 = _onlineUsers.get(0);

     CharSequence[] users = {user1, user2};

它工作得很好,但我想找到一种更有效的方法?

4

2 回答 2

3

你可以这样做:

取而代之String[] users_CharSequence[] users

并像下面这样:

users = new String[_onlineUsers.size()];
System.out.println("Total Item is: "+_onlineUsers.size());
users = _onlineUsers.toArray(users);
System.out.println("USERS :"+_onlineUsers.toArray(users));

这会将您的整体转换ArrayList<String> _onlineUsersString[] users.

希望它会帮助你。

如果它不能解决您的问题,请随时提出任何问题。

于 2012-04-07T06:52:16.223 回答
0

您的代码是正确的并且没有错误。我认为你必须检查它 -

CharSequence[] users = {_onlineUsers.get(1), _onlineUsers.get(2),    _onlineUsers.get(3), _onlineUsers.get(4)};

检查它是否能够从中获取字符串。

于 2012-04-07T06:59:20.510 回答