Загрузка списка массивов из другого сериализованного класса для использования в ListView

#java #android

#java #Android

Вопрос:

Я все еще новичок в Android, я в первую очередь разработчик iOS.

Я не знаю, почему я не могу проверить, является ли listArray пустым или нет. Мне все равно нужно протестировать и использовать его размер.

Это объявлено в классе:
Projects проекты = новые проекты();

Следующий код не любит, когда projects.videos.size() сравнивается с нулем или 0.

 try
{

if (projects != null)
{
int numberOfVideos = projects.videos.size();
    if(numberOfVideos==0)
    {
//           myStringArray = new String[projects.videos.size()];
//          
//          
//          
//          for (int i = 0;i < projects.videos.size();i  )
//          {
//              myStringArray[i] = projects.videos.get(i);
//          }
    }   
    else
    {
//          myStringArray = new String[1];
//          myStringArray[0] = "No projects";
    }
}
else
{
    System.out.println("Sucess");
}

}

catch (Exception e)
{
System.out.println(e);
System.out.println("somethingbad has happened");
System.out.println(projects.videos.size());
}
  

Вот как выглядит класс projects:

  package com.example.musicvideomaker;

import java.util.ArrayList;
import java.util.UUID;
import java.io.Serializable;

@SuppressWarnings("serial")
public class Projects implements Serializable{

public String projectName;
public String musicStuff;
public String songTitle;
public String guid;
public boolean isBuiltVideo;
public boolean isListOfBuiltVideos;
public int selectedIndex;

public ArrayList<String> videos;
public ArrayList<String> builtVideos;
public ArrayList<Number> tPoints;

public void setProjectName(String projectName)
{
    this.projectName = projectName;
}

public void setMusicStuff(String musicStuff)
{
    this.musicStuff = musicStuff;
}

public void setSongTitle(String songTitle)
{
    this.songTitle = songTitle;
}

public void setGuid()
{
    UUID uuid = UUID.randomUUID();
    this.guid = uuid.toString();
}

public void isBuiltVideo(boolean isBuiltVideo)
{
    this.isBuiltVideo = isBuiltVideo;
}

public void isListOfBuiltVideos(boolean isListOfBuiltVideos)
{
    this.isListOfBuiltVideos = isListOfBuiltVideos;
}

public void setSelectedIndex(int selectedIndex)
{
    this.selectedIndex = selectedIndex;
}

public void addRecordedVideo(String recordedVideo)
{
    this.videos.add(recordedVideo);
}

public void addBuiltVideo(String builtVideo)
{
    this.builtVideos.add(builtVideo);
}

public void addTPoint(Number tPoint)
{
    this.tPoints.add(tPoint);
}


}
  

Комментарии:

1. Что вы имеете в виду, что ему это не нравится? Что происходит / не происходит?

2. Вы проверили projects.videos == null?

3. Он по-прежнему выходит из строя, когда я проверяю, что видео имеют значение null или projects.videos.size()==null — неправильный синтаксис.

4. Какова фактическая ошибка, которую вы получаете?

5. Итак, projects.videos==null работает. По какой-то причине происходит сбой, когда я пытаюсь ввести numberOfVideos = projects.videos.size(); Я просмотрел документацию, и .size() является целым числом, поэтому я не знаю, почему это не сработало. Возможно, потому, что projects было null. docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html

Ответ №1:

Я удалил int numberOfVideos = projects.videos.size();

Вместо использования if(numberOfVideos==0) Я использовал projects.videos == null

Я думаю, это было потому, что мои проекты имеют значение null, поэтому он выходит из строя при попытке получить размер ArrayList.