无法从Arraylist中获取对象,.get()

时间:2017-03-06 11:41:46

标签: android list object

所以我试图创建一个对象列表,然后我可以访问它。

我已经能够用对象填充ArrayList,但是当我尝试使用时,应用程序崩溃时无法将对象取回.get(1)

活动类

 public class Second_Activity extends Activity {
 ArrayList<Event> Eventlist = new ArrayList<Event>();
 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_activity);


 public void Add(View view) {
    EditText Title = (EditText)findViewById(R.id.ETtitle);
    EditText Subject = (EditText)findViewById(R.id.ETsubject);
    EditText room = (EditText)findViewById(R.id.ETroom);
    EditText time = (EditText)findViewById(R.id.ETtime);

    String FTitle =  Title.getText().toString();
    String FSubject = Subject.getText().toString();
    String Froom = room.getText().toString();
    String FTtime = time.getText().toString();
    Event ev = new Event(FTitle,FSubject,Froom,FTtime);
    Eventlist.add(ev);
     String name= Eventlist.get(1).getRoom();
    }
  }

活动类

   public class Event {
   String Title;
   String Subject;
   String Room;
   String StartTime;

   public Event(String Title , String Subject, String Room, String  StartTime)
   {       

   }
   public void setTitle(String title) {
     Title = title;
   }
   public void setSubject(String subject) {
     Subject = subject;
   }
   public void setRoom(String room) {
     this.Room = room;
   }
   public void setStartTime(String startTime) {
     StartTime = startTime;
   }
   public String getStartTime() {
     return StartTime;
   }
   public String getRoom() {
     return Room;
   }
   public String getTitle() {
     return Title;
   }
   public String getSubject() {
     return Subject;
   }
  }

4 个答案:

答案 0 :(得分:0)

  

数组索引从0开始...第一个对象将在0位...你试图访问2项没有列表

  String name= Eventlist.get(0).getRoom();

答案 1 :(得分:0)

您正在访问索引1处的数据.ArrayList的起始索引为0.第一次只有一个项目,即索引0时,尝试访问索引0而不是1。

答案 2 :(得分:0)

首先,您只为ArrayList添加了一个项目 第二,你没有从constructorEvent初始化你的参数。

因此,从第0个位置获取对象而不是从1开始,因为索引从零开始而不是从一个开始。

 String name= Eventlist.get(0).getRoom();



     public class Event {
       String Title;
       String Subject;
       String Room;
       String StartTime;

       public Event(String Title , String Subject, String Room, String  StartTime)
       {       
//here you need set incoming values to your class variables .

         this.Title =Title;
         this.Subject=Subject;
         this.Room=Room;
         this.StartTime=StartTime;

       }
       public void setTitle(String title) {
         Title = title;
       }
       public void setSubject(String subject) {
         Subject = subject;
       }
       public void setRoom(String room) {
         this.Room = room;
       }
       public void setStartTime(String startTime) {
         StartTime = startTime;
       }
       public String getStartTime() {
         return StartTime;
       }
       public String getRoom() {
         return Room;
       }
       public String getTitle() {
         return Title;
       }
       public String getSubject() {
         return Subject;
       }
      }

答案 3 :(得分:0)

需要在类中初始化变量,并从0开始,而不是从1开始。