2012-07-06 96 views
0

全部 - 我有一个应用程序,用户在游戏中输入玩家的名字。他/她可以输入2-4名玩家。该应用程序采用名称并将其放入微调器中。当用户输入4名球员时效果很好,但当他们只输入2或3名球员时,球员有2个或1个(分别)空的空间。我怎么能这样做,当用户输入少于4个的球员,只有这个数字的名字出现在微调(没有空的空间)。这里是我使用的代码:Spinner中的项目自定义项数

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 = 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

用户在哪里输入玩家人数以及它与Spinner的互动情况如何?请张贴更多你的代码。 – Sam 2012-07-06 00:17:34

+0

用户在早期活动中输入玩家。请参阅编辑接收意向 – ninge 2012-07-06 00:19:32

回答

1

你可以根据这些信息检查哪些消息是空的,然后修改项目阵列。我们的目标是到一个数组中没有多余的空格在它

编辑传递到您的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); 
+0

好的。代码将如何查找? – ninge 2012-07-06 00:30:43

+0

你可以使用一个List而不是一个数组作为你的玩家名字并动态构建它。请参阅编辑。 – Nate 2012-07-06 00:54:02

+0

甜的就是这样。非常感谢! – ninge 2012-07-06 00:59:09

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())生成的微调。

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

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

+0

好吧,让我试试看。 – ninge 2012-07-06 00:46:32

+0

我该怎么做,因为我的球员在'String [] items = new String [] {“No Owner”,message,message2,message3,message4};'不是R.id.contentlist? – ninge 2012-07-06 00:52:40

+0

我应该提到R.id.contentlist引用了一个TextView,它在你的大版面中。 TextView是你如何得到结果字符串数组。我会在上面编辑它。 – panoptical 2012-07-06 01:00:03