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