Перенос данных из одного действия в другое с помощью намерений

Во время разработки моего первого приложения для iPhone я написал код, который хорошо работал на iPhone Simulator, но который не работал над устройством. Таким образом, я сказал бы "да, Определенно необходимо протестировать на существующем устройстве".

средство моделирования не является эмулятором. Это не выполняет фактическую iPhone OS; это выполняет ряд библиотек Mac OS X, которые очень похожи, но не идентичны к iPhone OS. Средство моделирования является большим для того, чтобы отладить и сэкономить время во время кода-и-цикла-испытаний, таким образом, Вы будете использовать его намного больше, чем устройство, но устройство необходимо.

Вам действительно нужно к касанию-и-чувству Ваше приложение на физическом устройстве. UI, который работает отлично, в то время как наведение и кликание с мышью могло бы быть ужасным при использовании с ползунками и пальцами. Если существует какой-либо ввод текста, необходимо чувствовать, как болезненный это должно ввести использование экранной клавиатуры, чтобы определить, имеет ли смысл предоставлять альтернативные методы ввода данных.

существуют также значительные различия в производительности между средством моделирования и существующими устройствами. Необходимо протестировать с самым старым (самым медленным) устройством, которое Вы хотите поддерживать, чтобы проверить, что это не слишком медленно, не исчерпывает память, и т.д.

, Как другие предположили, iPod Touch также достаточен, таким образом, стоимость устройства не огромна. Кроме того, попытайтесь найти бета-тестеров со множеством различных моделей.

21
задан ChallengeAccepted 22 December 2013 в 06:28
поделиться

4 ответа

Есть несколько способов получить доступ к переменным или объектам в других классах или Activity.

а. База данных

B. общие настройки.

С. Сериализация объектов.

D. Класс, который может содержать общие данные, может называться Common Utilities, это зависит от вас.

Е. Передача данных через интерфейс Intents и Parcelable.

Это зависит от потребностей вашего проекта.

а. База данных

SQLite - это база данных с открытым исходным кодом, встроенная в Android. SQLite поддерживает стандартные функции реляционной базы данных, такие как синтаксис SQL, транзакции и подготовленные операторы.

Руководства - http://www.vogella.com/articles/AndroidSQLite/article.html

B. Общие настройки

Предположим, вы хотите сохранить имя пользователя. Таким образом, теперь будет две вещи: Ключ Имя пользователя, Значение Значение.

Как сохранить

 // Create object of SharedPreferences.
 SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
 //now get Editor
 SharedPreferences.Editor editor = sharedPref.edit();
 //put your value
 editor.putString("userName", "stackoverlow");

 //commits your edits
 editor.commit();

Используя putString (), putBoolean (), putInt (), putFloat (), putLong () вы можете сохранить желаемый тип данных .

Как получить

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String userName = sharedPref.getString("userName", "Not Available");

http://developer.android.com/reference/android/content/SharedPreferences.html

С. Сериализация объектов

Сериализация объектов используется, если мы хотим сохранить состояние объекта, чтобы отправить его по сети, или вы можете использовать его для своих целей.

Используйте Java-бины и сохраняйте их в качестве одного из его полей и используйте для этого методы получения и установки

JavaBeans - это классы Java, которые имеют свойства. Думайте о свойствах как о частных переменных экземпляра. Поскольку они закрыты, единственный доступ к ним за пределами их класса - через методы в классе. Методы, которые изменяют значение свойства, называются методами установки, а методы, которые извлекают значение свойства, называются методами получения.

public class VariableStorage implements Serializable  {

    private String inString ;

    public String getInString() {
        return inString;
    }

    public void setInString(String inString) {
        this.inString = inString;
    }


}

Установите переменную в вашем почтовом методе с помощью

VariableStorage variableStorage = new VariableStorage();
variableStorage.setInString(inString);

Затем используйте объект Serialization для сериализации этого объекта и в другом классе для десериализации этого объекта.

При сериализации объект может быть представлен в виде последовательности байтов, которая включает в себя данные объекта, а также информацию о типе объекта и типах данных, хранящихся в объекте.

После того, как сериализованный объект был записан в файл, его можно прочитать из файла и десериализовать, то есть информацию о типе и байты, которые представляют объект и его данные, можно использовать для воссоздания объекта в памяти.

Если вы хотите учебник для этого, обратитесь по этой ссылке

http://javawithswaranga.blogspot.in/2011/08/serialization-in-java.html

Получить переменную в других классах

D. CommonUtilities

Вы можете самостоятельно создать класс, который может содержать общие данные, которые вам часто нужны в вашем проекте.

Образец

public class CommonUtilities {

    public static String className = "CommonUtilities";

}

E. Передача данных через содержимое

Пожалуйста, обратитесь к этому руководству для этой опции передачи данных.

http://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/

14
ответ дан 29 November 2019 в 06:51
поделиться

Передача данных из одного действия в другое в Android

Intent intent = new Intent(context, YourActivityClass.class);
intent.putExtra(KEY, <your value here>);

startActivity(intent);

Извлечение данных пакета из активности Android

Intent intent = getIntent();
  if (intent!=null) {
  String stringData= intent.getStringExtra(KEY);
  int numberData = intent.getIntExtra(KEY, defaultValue);
  boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
  char charData = intent.getCharExtra(KEY, defaultValue);   }
1
ответ дан 29 November 2019 в 06:51
поделиться

Вам просто нужно отправлять дополнительные услуги при вызове вашего намерения

следующим образом:

Intent intent = new Intent (getApplicationContext (), SecondActivity.class); intent.putExtra («Имя переменной», «Значение, которое вы хотите передать»); startActivity (intent);

Теперь в методе OnCreate вашего SecondActivity вы можете получить дополнительные функции, например:

Если отправленное вами значение было в «long»

long value = getIntent (). getLongExtra («Имя переменной, которую вы отправили как дополнительное», defaultValue (вы можете дать ей что угодно));

Если отправленное вами значение было «String»

String value = getIntent (). GetStringExtra («Имя переменной, которое вы отправили как дополнительное»);

Если отправленное вами значение было «логическим»

Логическое значение = getIntent (). getStringExtra («Имя переменной, которую вы отправили как дополнительное», defaultValue);

0
ответ дан 29 November 2019 в 06:51
поделиться

Это работает лучше всего:

Посредством приведенного ниже кода мы можем отправлять значения между действиями

использовать приведенный ниже код в родительской активности (РОДИТЕЛЬСКИЙ КЛАСС / ЗНАЧЕНИЕ ОТПРАВЛЯЮЩИХ КЛАССОВ)

Intent myintent=new Intent(<PARENTCLASSNAMEHERE>.this,<TARGETCLASSNAMEHERE>.class).putExtra("<StringName>", value);
startActivity(myintent);

используйте приведенный ниже код в дочерней активности (TARGET CLASS / ACTIVITY)

String s= getIntent().getStringExtra(<StringName>);

Обратите внимание, здесь «StringName» - это имя, которое получает назначение / дочерняя активность, а «value» - переменная. имя, такое же, как в родительском / целевом / классе отправки.

0
ответ дан 29 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: