将arraylist的所有值显示到textview

时间:2015-08-02 16:17:16

标签: random arraylist textview

我正在开发一个应用程序,我必须从arraylist obj生成随机值,并将生成的值保存到rndmObj arraylist。然后,我需要在屏幕上的多行文字视图rndmObj中显示tvObjectList1的所有值。但是在打开应用程序时,它崩溃了“不幸的是应用程序已关闭。”的常见消息。

我知道代码存在某些问题。所以logcat没有帮助。

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.level);


    prepareObjList();
    randObjFunc();
   }}

    private void prepareObjList() {
    // TODO Auto-generated method stub
    //adding string values to arrayList for tvObjectList1
    obj = new ArrayList<String>();
    obj.add("bowTie");
    obj.add("key");
    obj.add("grosshoper");


    //adding imageViews to objImg arrayList
    objImg = new ArrayList<Integer>();
    objImg.add(R.drawable.level1_bowtie);
    objImg.add(R.drawable.level1_key);
    objImg.add(R.drawable.level1_grasshopper);
}


final Random randomGenerator = new Random();
ArrayList<String>obj;
ArrayList<String>rndmObj;
public String item=null;
private void randObjFunc(){
    int index=0;
    while(index <10){
        item = obj.get(randomGenerator.nextInt(obj.size()));
        rndmObj.add(index, item);
        obj.remove(obj.indexOf(item));
        index++;
    }
    dispRndmObj();
}


private void dispRndmObj(){
    for (int i=0; i<rndmObj.size();i++){
        ((TextView) findViewById(R.id.tvObjectList1))
        .setText(rndmObj.get(i).toString());
    }        

}

没有语法错误和应用安装完美。所有初始化都是由所有变量,arraylists等完成的 我希望快速提供一些有用的建议,指导和代码片段。

2 个答案:

答案 0 :(得分:0)

你有没有初始化obj和rndmObj?

尝试

ArrayList<String> obj = new ArrayList<>();
ArrayList<String> rndmObj = new ArrayList<>();

另外

randomGenerator.nextInt(obj.size())

如果obj为空,将抛出IllegalArgumentException(例如,因为你从未填充它,你似乎没有。)

答案 1 :(得分:0)

嗯,您的代码中有很多错误,首先将objrndmObj初始化为

ArrayList<String> obj = new ArrayList<String>(); ArrayList<String> rndmObj = new ArrayList<String>();

之后,IllegalStateException最有可能获得obj.size(),因为它将返回零,这是nextInt(n);方法所不期望的。那么,你可能必须在obj中插入一些值,或者取决于你想要做的事情。完成此操作后,您将了解下一步该做什么。希望这会有所帮助,如果卡在任何地方你可以发表评论。 :)