如何正确创建对象列表,然后通过索引使用这些对象?

时间:2013-03-12 15:51:12

标签: android object arraylist

我正在尝试在程序中创建另一个类的对象列表。我希望能够访问列表中的特定对象,然后使用该对象从类中获取数据。这是我正在创建对象的类:

public class objectdata extends Activity {

    int number=0;
    String word="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }


    public objectdata(int num, String word){

        number = num;
        word = word;

    }
}

这是将对象添加到列表中的类以及我希望访问对象的位置:

public class MainActivity extends Activity {



    TextView tv;
    ArrayList<Object> objarray = new ArrayList<Object>(2);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        makeObjects();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


    public void makeObjects(){

        //For loop creates two objects and adds them to the list
        for(int i = 0; i < 3; i++) {

            int number=1;
            String word="One";
            number++;

            objectdata o = new objectdata(number, word);
            objarray.add(o);
        }


        //THIS IS WRONG!
        //Access the second object in the list, so as to access the value in number
        objectdata o = objarray.get(1);
        tv.setText(o.number.toString());


    }

}

在底部是我尝试访问索引1中的对象,所以创建的第二个对象,我想通过使用对象从类中获取数字的值并将其存储在文本视图中,这样我就可以看它有效。基本上我试图使用对象来存储数据,然后将这些对象存储在数组列表中。我完全陷入了困境。

1 个答案:

答案 0 :(得分:1)

由于您希望在ArrayList内存储您自己的类的对象,请更改以下声明

ArrayList<Object> objarray = new ArrayList<Object>(2);

ArrayList<objectdata> objarray = new ArrayList<objectdata>(2);

那么你的代码应该可行。顺便说一下,objectdata对于一个类来说不是一个好名字,根据命名约定,一个好的名字应该以大写字母开头并使用驼峰大小写:ObjectData。希望这会有所帮助。