0

全部-我有一个应用程序,用户可以在其中输入游戏中玩家的姓名。他/她可以进入2-4名球员。该应用程序获取名称并将它们放入微调器中。当用户输入 4 名玩家时效果很好,但当他们只输入 2 或 3 名玩家时,微调器有 2 或 1 个(分别)空白空间。当用户输入的玩家数量少于 4 时,我该如何做到这一点,只有该数量的名称出现在微调器中(没有空格)。这是我正在使用的代码:

String[] items = new String[] {"No Owner", message, message2, message3, message4};
Spinner spinner = (Spinner) findViewById(R.id.owner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

消息 = 播放器 1,消息 2 = 播放器 2,等等。

欢迎使用示例代码,感谢您的宝贵时间。编辑:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    String message2 = intent.getStringExtra(MainActivity.ANOTHER_MESSAGE);
    String message3 = intent.getStringExtra(MainActivity.YET_ANOTHER);
    String message4 = intent.getStringExtra(MainActivity.AND_ANOTHER);




setContentView(R.layout.next_main);
4

2 回答 2

1

您可以检查哪些消息是空的,然后根据该信息修改您的 items 数组。目标是将数组传递给您的 ArrayAdapter,其中没有多余的空格

编辑:

List<String> playersList = new ArrayList() ;
        if(!message.equals("")){
            playersList.add(message);
        }
        etc..  

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, playersList);
于 2012-07-06T00:29:38.250 回答
1

由于您要将玩家姓名导入字符串,因此我会运行字符串比较以查看每个字符串是否与默认值匹配,如果没有玩家填充该位置。换句话说,如果 message.compareTo("") 返回 0,则不要将其包含在 中items,它最好用作 ArrayAdapter。你可以通过一个简单的 if 块来做到这一点。

示例代码:

ArrayAdapter items = new ArrayAdapter<String>(this, int textViewResourceId);    

if (message.compareTo("") != 0) {
    items.add(message);
}
if (message2.compareTo("") != 0) {
    items.add(message2);
}
....

您将继续处理其余的项目,使用生成的数组(您可以使用 拉出toString())来生成 Spinner。

编辑:修复了构造函数代码。

编辑 2:在构造函数中修复了 textViewResourceId。

于 2012-07-06T00:40:22.067 回答