我正在尝试在程序中创建另一个类的对象列表。我希望能够访问列表中的特定对象,然后使用该对象从类中获取数据。这是我正在创建对象的类:
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中的对象,所以创建的第二个对象,我想通过使用对象从类中获取数字的值并将其存储在文本视图中,这样我就可以看它有效。基本上我试图使用对象来存储数据,然后将这些对象存储在数组列表中。我完全陷入了困境。
答案 0 :(得分:1)
由于您希望在ArrayList
内存储您自己的类的对象,请更改以下声明
ArrayList<Object> objarray = new ArrayList<Object>(2);
到
ArrayList<objectdata> objarray = new ArrayList<objectdata>(2);
那么你的代码应该可行。顺便说一下,objectdata
对于一个类来说不是一个好名字,根据命名约定,一个好的名字应该以大写字母开头并使用驼峰大小写:ObjectData
。希望这会有所帮助。