我的代码检索了许多步骤,然后通过for循环在每一步输出一条指令。将有标题,描述,视频和音频。但是,我试图想办法将每个变量存储到一个结构中。这就是我提出的,但我不认为数组可以在同一个索引处存储多个值。
for(int i = 0; i < QRData.number_steps; i++){
System.out.println("Inside for loop");
array[i].setTitle(btn_instructions.get(i));
array[i].setDescription(instruction_row.get(i));
array[i].setInstructionVideo(videos.get(i));
array[i].setAudioInstruction(audio.get(i));
}
存储这些值的更好方法是什么,以便以后检索它们?我很确定我的方法不起作用。
答案 0 :(得分:1)
你应该创建一个像这样的对象:
public class DataStorage{
private String title;
private String description;
private File audioFile;
private File videoFile;
public DataStorage(String title, String description, File audioFile, File videoFile){
this.title = title;
this.description = description;
this.audioFile = audioFile;
this.videoFile = videoFile;
}
public String getTitle(){
return this.title;
}
//similar for "description", "audioFile" and "videoFile"
//...
}
对于DataStorage,我建议使用ArrayList,因为它是动态的,您可以在Programm运行时添加新元素。 然后你可以用循环保存数据:
ArrayList<DataStorage> storage = new ArrayList<>();
for(int i = 0; i < QRData.number_steps; i++){
storage.add(new DataStorage(btn_instructions.get(i),instruction_row.get(i),
videos.get(i),audio.get(i));
}
这是面向对象编程的基本概念,用于定义存储自定义数据的类。
现在,您可以通过调用&#34; getters&#34;来获取数据。您的Datastorage类。 例如:
String title = storage.get(itemNumber).getTitle();
为您提供&#34; itemNumber&#34;的值名称
答案 1 :(得分:0)
您应该创建一个新对象来存储这些值,然后将该对象存储在数组中。
答案 2 :(得分:0)
你必须使用对象数组,使用它你将创建一个类和类的数组,例如检查以下代码:
class Person{
private String name;
private Integer age;
Person(String name,Integer age){
this.name=name;
this.age=age;
}
----getters and setters methods-----
}
class Test{
public static void main(String args[]){
Person arr[]=new Person[10];
arr[0]=new Person("Alex",26);
}
}
在此处查看完整示例http://www.java2s.com/Tutorial/Java/0200__Generics/ArraysStoringclassobjectsinArrayasdataitems.htm
干杯