2013-08-06 2 views
0

Привет, ребята, я новичок в программировании на Android, но имею некоторый опыт работы с .net в любом случае, что бы я хотел сделать, это создать класс, скажем, RestartDialog, а затем вызвать этот класс из активности. Обычно в .net Я хотел бы использовать:Как начать работу с пользовательскими значениями

RestartDialog rd = new RestartDialog(); 

rd.setType(EXTENDED_TYPE); 
rd.show; 

, то было бы начать в расширенном режиме, однако в Android вам нужно Intents начать activitys и это единственный путь, я прав? Я знаю, что могу использовать Intent.putExtra и т. Д., Но сначала мне нужно будет установить множество значений.

Что было бы лучше всего для этого? Заранее спасибо за вашу помощь.

ответ

1

Намерение - это способ передачи данных. поэтому, если вам нужно отправить много данных, вы можете использовать Parcelable. Это также намного быстрее.

Если вы просто проходите мимо объектов, то для этого был разработан Parcelable. Это требует немного больше усилий для использования, чем использование собственной сериализации Java, но это намного быстрее (и я имею в виду путь, WAY быстрее).

Из документов, простой пример того, как реализовать это:

// simple class that just has one member property as an example 
public class MyParcelable implements Parcelable { 
    private int mData; 

    /* everything below here is for implementing Parcelable */ 

    // 99.9% of the time you can just ignore this 
    public int describeContents() { 
     return 0; 
    } 

    // write your object's data to the passed-in Parcel 
    public void writeToParcel(Parcel out, int flags) { 
     out.writeInt(mData); 
    } 

    // this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods 
    public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() { 
     public MyParcelable createFromParcel(Parcel in) { 
      return new MyParcelable(in); 
     } 

     public MyParcelable[] newArray(int size) { 
      return new MyParcelable[size]; 
     } 
    }; 

    // example constructor that takes a Parcel and gives you an object populated with it's values 
    private MyParcelable(Parcel in) { 
     mData = in.readInt(); 
    } 
} 

Observe that in the case you have more than one field to retrieve from a given Parcel, you must do this in the same order you put them in (that is, in a FIFO approach). 

Once you have your objects implement Parcelable it's just a matter of putting them into your Intents with putExtra(): 
Intent i = new Intent(); 
i.putExtra("name_of_extra", myParcelableObject); 

Then you can pull them back out with getParcelableExtra(): 
Intent i = getIntent(); 
MyParcelable myParcelableObject = (MyParcelable) i.getParcelableExtra("name_of_extra"); 

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

+0

Благодарю вас, я рассмотрю Parcelable. – user2655267

+0

С удовольствием :) – Sushil

1

Во-первых, вы хотите создать Intent:

Intent intent = new Intent(); 

Придумайте намерения как способ хранения значений данных:

intent.putExtra("type", EXTENDED_TYPE); 

Когда вы закончите ввод информации в своих намерениях, вы начинаете свою деятельность:

startActivity(intent); 

Тогда в вашей новой деятельности, вы извлечь значения, требуемые в OnCreate метод:

... 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.email_login_activity); 

    Intent intent = getIntent(); 
    this.type = intent.getIntExtra("type", 0); 

В этом случае я получил getIntExtra return 0, если дополнительный «тип» не был установлен.

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

0

Хотя самое простое решение было бы:

Чтобы создать класс со статическими членами данных с геттерами сеттерами.

набор из одной активности и получить от другой деятельности этот объект.

деятельность A mytestclass.staticfunctionSet ("", "", "" и т. Д.);

деятельность b mytestclass obj = mytestclass.staticfunctionGet();

+0

Это похоже на простое решение. – user2655267

+0

Рад помочь :) – Sushil

Смежные вопросы