Я новичок в Android. Скажите, пожалуйста, как получить двумерный массив строк из одного действия в другую. СпасибоКак получить двумерную строку Array от одного действия к другому
ответ
Я могу дать вам самый простой ответ, Сделать Serializable класс для геттер и сеттер и использовать ваши данные в любом месте вашего приложения, как:
Class ABC implements Serializable
{
private static final long serialVersionUID = 1L;
String[][] str;
private static ABC singletonObject;
public static ABC getSingletonObject() {
if (singletonObject == null) {
singletonObject = new ABC();
}
return singletonObject;
}
public void setString(String[][] str)
{
this.str = str;
}
public String[][] getString()
{
return str;
}
}
Yous может установить его в качестве
ABC s = ABC.getSingletonObject();
s.setString(str);
В другом виде деятельности
ABC s = ABC.getSingletonObject();
String[][] str = s.GetString();
и наслаждаться
Самый простой способ, чтобы обернуть его в сериализуемой класса и передать его в намерении :)
Вы можете использовать Android
Parcelable
класса для передачи данных Serializable
как Arrays
. Ниже приведен пример в вашем случае.
public class MyParcelable implements Parcelable{
public String[][] strings;
public String[][] getStrings() {
return strings;
}
public void setStrings(String[][] strings) {
this.strings = strings;
}
public MyParcelable() {
strings = new String[1][1];
}
public MyParcelable(Parcel in) {
strings = (String[][]) in.readSerializable();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeSerializable(strings);
}
public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {
@Override
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
@Override
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
}
Чтобы перейти на другой вид деятельности -
public String[][] strings = new String[1][1];
strings[0][0] = "data";
MyParcelable myParcelable = new MyParcelable();
myParcelable.setStrings(strings);
intent.putExtra("parcel",myParcelable);
startActivity(intent);
Чтобы восстановить -
Intent intent = getIntent();
Bundle b = intent.getExtras();
MyParcelable myParcelable = b.getParcelable("parcel");
strings = myParcelable.getStrings();
Log.d("Your String[0][0] is - ",strings[0][0]+"");
Выход -
12-29 12:49:39.016: D/Your String[0][0] is -(1484): data
Я получил Exception «java.lang .ClassCastException: [Ljava.lang.Object; " – Anand
Извините, что ответит поздно. Вы также можете использовать Androids Parcelable Class для Serializable ваших данных. –
Вы могли бы сделать его строка за строкой. Не элегантный или эффективный. Но если у вас есть массив i by j, вы можете отправить i массивы длины j самостоятельно, а затем в новом действии вернуть их вместе.
Предполагая, что i и j являются довольно маленькими, что есть.
Два способа. 1) Держите его в статической переменной, доступной по отношению к активам. 2) Сделайте это как сериализуемые данные и поместите их в пучок.
, пожалуйста, дайте пример кода для двух способов: – Anand
Вы можете использовать putSerializable установить набор ByteArray и использовать getSerializable для retrive Посмотрите на следующий подход
Создать сериализации класс присвоить массив строк и положить, что сериализации в намерении
Шаг 1 Создайте класс Serializable Bean, чтобы установить массив в класс
public class MyBean implements Serializable{
String[][] data = null;
public void set2DArray(String[][] data){
this.data = data;
}
public String[][] get2DArray(){
return data;
}
}
Шаг-2 в Caller деятельности (Home класс)
Intent intent = new Intent(this, Second.class);
String data[][] = new String[][] {{"1","pavan"},{"2","kumar"},{"3","kora"},{"1","pavan"},{"2","kumar"},{"3","kora333"}};
MyBean bean = new MyBean();
bean.set2DArray(data);
Bundle b = new Bundle();
b.putSerializable("mybean", bean);
i.putExtra("obj", b);
startActivity(i);
Шаг 3 В Calling активность (второй класс)
Bundle b = getIntent().getBundleExtra("obj");
MyBean dData = (MyBean) b.getSerializable("mybean");
String[][] str =dData.get2DArray();
- 1. Передача переменной от одного действия к другому
- 2. Как получить данные ListView от одного действия к другому
- 3. Непрерывное уведомление от одного действия к другому
- 4. Как сохранить значение флажка от одного действия к другому действию
- 5. Как я могу передать Array от одного контроллера к другому
- 6. Yii2 Перенос сеанса при перенаправлении от одного действия к другому
- 7. Как вызвать нестатический метод от одного действия к другому действию
- 8. Как создать «ссылку» для перехода от одного действия к другому?
- 9. Как выполнить Jquery действия от одного к другому .load .load
- 10. Переход от одного действия к другому приводит к сбою приложения
- 11. получить значение от одного мастера к другому
- 12. Отправлять стоимость от одного действия другому
- 13. Передача объекта от одного действия контроллера другому
- 14. android ListView передает скрытые значения от одного действия к другому
- 15. NSMutable Array от одного класса к другому классу в iPhone
- 16. Как получить значение переменной от одного контроллера к другому контроллеру?
- 17. Неустранимая ошибка при переходе от одного действия к другому
- 18. переменной передача от одного действия к другому действию В ZF
- 19. Передача параметров от одного действия к другому в Oozie
- 20. Пропустить разные классы, используя Arraylist от одного действия к другому
- 21. Отправка нескольких намерений от одного действия к другому действию
- 22. Struts2: Как передать значения от одного действия к другому действию. Или от одного JSP к другому JSP. Без использования сеанса
- 23. Как перейти от одного действия к другому и к другому в sencha
- 24. Прохождение Serializable от одного действия к другому не работает
- 25. От одного объекта к другому
- 26. Как получить асинхронные данные от одного углового компонента к другому
- 27. Сбой приложения, когда программа переходит от одного действия к другому
- 28. Потеря данных при переходе от одного действия к другому
- 29. Rails 3.2 Передача параметров от одного действия контроллера к другому
- 30. Пересылаемые данные от одного действия контроллера к другому в yii2
Спасибо, его работа ... – Anand
Ваш прием .... –
@SanatPandey +1 Хороший ответ. – Venky