Подтвердить что ты не робот

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

Я хотел бы иметь возможность передавать данные из одной активности в другую. Как это можно сделать?

4b9b3361

Ответ 1

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

используйте приведенный ниже код в родительской активности

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

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

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

Ответ 2

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

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

В. общие предпочтения.

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

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

Е. Передача данных через Intents и Parcelable Interface.

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

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

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

Учебники - http://www.vogella.com/articles/AndroidSQLite/article.html

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

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

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

 // 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(), вы можете сохранить желаемый тип dtatype.

Как получить

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

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

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

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

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

JavaBeans - это классы Java, обладающие свойствами. Думать о свойства как частные переменные экземпляра. Поскольку они являются частными, единственный способ к ним можно получить доступ извне своего класса через методы в классе. методы, которые изменяют значение свойства, называются методами setter, а методы которые извлекают значение свойства, называются методами getter.

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);

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

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

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

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

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

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

Д. CommonUtilities

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

Пример

public class CommonUtilities {

    public static String className = "CommonUtilities";

}

Е. Передача данных с помощью намерений

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

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

Ответ 3

Когда вы передаете данные из одной активности в другую, выполните следующие действия

В родительской активности:

startActivity(new Intent(presentActivity.this, NextActivity.class).putExtra("KEY_StringName",ValueData)); 

или как показано ниже в разделе Родительская активность

Intent intent  = new Intent(presentActivity.this,NextActivity.class);     
intent.putExtra("KEY_StringName", name);   
intent.putExtra("KEY_StringName1", name1);   
startActivity(intent);

В дочерней активности выполните, как показано ниже

TextView tv = ((TextView)findViewById(R.id.textViewID))
tv.setText(getIntent().getStringExtra("KEY_StringName"));

или выполните действия, описанные ниже в дочерней активности

TextView tv = ((TextView)findViewById(R.id.textViewID));
TextView tv1 = ((TextView)findViewById(R.id.textViewID1))

/* Get values from Intent */
Intent intent = getIntent();         
String name  = intent.getStringExtra("KEY_StringName");
String name1  = intent.getStringExtra("KEY_StringName1");

tv.setText(name);
tv.setText(name1);

Ответ 4

Передача данных из одной активности в другую в android

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

startActivity(intent);

Извлечение данных о связке из андроидной активности

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);   }

Ответ 6

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

вот так:

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

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

Если значение u отправлено в "long"

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

Если значение u sent было "String"

Значение строки = getIntent(). getStringExtra ( "Имя переменной, которое вы отправили в качестве дополнительного" );

Если значение u sent было "Boolean"

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

Ответ 7

Ваша цель

Предположим, вы хотите перейти от к действию A в действие B.

Итак, мы используем намерение для переключения активности

Переключатель активности

типичный код выглядит так:

В действии A [A.class]

//// Create a New Intent object
Intent i = new Intent(getApplicationContext(), B.class);

/// add what you want to pass from activity A to Activity B
i.putExtra("key", "value");

/// start the intent
startActivity(i);

В действии B [B.class]

И получить данные из дочернего процесса

Intent i = getIntent();

if (i!=null) {
   String stringData= i.getStringExtra("key");
}

Ответ 8

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

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

используйте приведенный ниже код в родительской активности (КОД ОТКРЫТИЯ КЛАССА/ЦЕННОСТЕЙ)

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

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

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

Пожалуйста, смотрите здесь, что "StringName" - это имя, которое получает целевой/дочерний актив, в то время как "value" - это имя переменной, такое же, как в классе parent/target/send.