自定义Spinner中的项目数

时间:2012-07-06 00:07:53

标签: java android spinner

全部 - 我有一个应用程序,用户在其中输入游戏中玩家的名字。他/她可以输入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);

message = Player 1, message2 = Player2, 等

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

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);

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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。