Я основываю это решение, которое вы хотите создать список объектов и использовать его в другом классе деятельности.
Первое решение - Вы можете создать собственный класс приложения и создать экземпляр своего объекта в методе обратного вызова onCreate. Это даст вам доступ к списку объектов в другом классе
public class CustomApplication extends Application {
private List<YourClassName> listOfObjects;
@Override
public void onCreate() {
super.onCreate();
listOfObjects = new ArrayList<YourClassName>();
}
private List<YourClassName> getListOfObject(){
return listOfObjects;
}
}
Затем к нему доступ, вы можете использовать эту строку кода
List<YourClassName> objectList = ((CustomApplication)getApplication()).getListOfObject();
Второе решение - Вы можете использовать класс Wrapper чтобы обернуть список объектов, как показано ниже.
Если у вас есть этот класс пользователей
public class User {
private String name;
private String email;
private String username;
public User(String name, String email, String username) {
this.name = name;
this.email = email;
this.username = username;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public String getUsername() {
return username;
}
}
то класс обертка будет выглядеть следующим образом
public class Wrapper {
private List<User> users;
public Wrapper(List<User> users){
this.users = users;
}
public List<User> getUsers(){
return users;
}
}
Вы можете преобразовать класс Wrapper в Json Струнный
Gson gson = new Gson();
String jsonString = gson.toJson(Wrapper);
Вы может хранить вас jsonString в sharepreference, подобном этому
SharedPreferences prefs = getSharedPreferences("IDENTIFIER", Context.MODE_PRIVATE);
SharedPreferences.Editor edits = prefs.edit();
edits.putString("LIST_OBJECT", jsonString);
edits.apply();
Чтобы получить обратно список пользователей в классе, вы будете использовать приведенный ниже код.Получить строку JSON в sharedpreference как этот
String jListObject = prefs.getString("LIST_OBJECT", "")
затем получить список пользовательских объектов
Wrapper listObjectWrapper = gson.fromJson(stringObject, Wrapper.class);
List<User> users = listObjectWrapper.getUsers();
Третье решение - вы можете использовать TypeToken для преобразования JSON строку в список объектов, как в примере ниже
Создать список объектов пользователя
List<User> objList = new ArrayList<User>();
objList.add(new User("high", "zero.yahoo.com", "zero"));
objList.add(new User("low", "one.yahoo.com", "one"));
преобразовать объект списка в строку
String json = new Gson().toJson(objList);
магазин строка JSON в sharedpreference на примере во втором растворе
При извлечении строки JSON, вы можете переконвертировать его в список объектов Пользователя, как показано ниже
Type type = new TypeToken<List<DataObject>>(){}.getType();
List<DataObject> inpList = new Gson().fromJson(jsonString, type);
Не забудьте добавить эту строку в файл build.gradle приложения
compile 'com.google.code.gson:gson:2.4'
Вы можете расширить класс приложения и создать глобальный список объектов, доступ к которым можно получить в любом месте приложения – Inducesmile
@NollyJ Если это то, что происходит после OP. Честно говоря, я не совсем понимаю, чего хочет или нуждается OP. Возможно, это просто создание списка объектов в одном действии и сделать его доступным для другого действия. –
Да, это непонятно, но я основывал свою интуицию на этой части утверждения - «больше активности» – Inducesmile