0

我正在创建应用程序,玩家将他们的名字放入程序中,程序将他们的名字发送到字符串数组中的下一个活动,然后下一个程序将数组放入列表中,然后对其进行随机播放。出于某种原因,每次我尝试使用 .setText 函数时,应用程序都会收到 nullpointerexception 错误。我已经用 toast 测试了该列表,以验证它不为空,而事实并非如此。有什么建议么?

endInstructions = (Button)findViewById(R.id.buttonEndInstructions);

    player = (TextView)findViewById(R.id.textViewPlayerName);

    endInstructions.setOnClickListener(this);

    Bundle ext = getIntent().getExtras();
    int numberOfPlayers= ext.getInt("numberofplayers");
    String[] sarray = ext.getStringArray("namearray");

    names = Arrays.asList(sarray);
    Collections.shuffle(names);

    Toast.makeText(this, names.get(0), Toast.LENGTH_SHORT).show();

    //player.setText(names.get(0));

提前致谢!

4

2 回答 2

0

没有一百万个解决方案...

Player 为 null,您可以通过测试来检查:

 Toast.makeText(this, player, Toast.LENGTH_SHORT).show();

这意味着什么?可能您当前的布局不包含名为“textViewPlayerName”的文本视图

请仔细检查您的 xml 布局或确保您之前使用过 setContentView ;-)

编辑:由于 endInstructions 关于您的代码不为空,因此您之前正确使用了 setContentView ...

于 2012-06-07T18:56:46.563 回答
0

我认为 GUI 对象播放器为空。如果您放置一个 try/catch 块,您可以验证这一点,并在导致异常后阅读错误消息。

我怀疑 GUI 对象 ID R.id。textViewPlayerName不存在或不是类类型TextView。因此 player 为空。例如,对象类型可能是TextField,或者是 Android 框架中的任何其他有效类型。

祝你好运,让我们知道你的进展。

于 2012-06-07T19:16:10.177 回答