2013-07-22 7 views
0

Хорошо, я действительно новичок в разработке Android и огляделся по сторонам для объяснения, но не смог найти много. Я постараюсь быть максимально ясным в своем вопросе.Работа между действиями в android

В принципе, скажем, у меня есть 2 вида деятельности, деятельность по созданию, которая содержит форму с текстовыми полями и т. Д. (Информация заполняется пользователем) и кнопку создания внизу. Мое второе действие под названием Creations в основном пустое визуально, пока пользователь не создаст что-то с формой в Create Activity.

Так у меня есть метод, когда создать нажимается кнопка в Create деятельности

public void create(View view){ 

    Creations.make(info1, blah1, blah2, etc); 

} 

Теперь это делает() метод в Creations деятельности, он рисует собственный взгляд на эту страницу с информацией и я хочу, чтобы он вызывался каждый раз, когда пользователь нажимает кнопку «Создать» в «Создать действие». Я знаю, что не могу этого сделать, если make() не является статическим методом, но как же мне это реализовать? Я знаю, что мне нужно было бы создать объект моей деятельности Creations, но тогда я не буду делать несколько объектов одной и той же активности для каждого нового элемента, который я хочу добавить?

+0

Вы сказали, что вы новичок в Android. Понимаете ли вы, что «Активность» - это в основном инфраструктура пользовательского интерфейса, и считается, что она находится в рабочем состоянии при полной видимости? Если это так, когда и как будет начата деятельность «Творения»? – Squonk

+0

Вы должны прочитать больше на developer.android.com и заполнить учебники. Вы отстаете. Вы не должны добавлять статические методы к «Деятельности» и должны передавать значения новым действиям с помощью «Intent» – Simon

+0

Жаль, что я не был достаточно ясен. Активность Creations запускается, когда пользователь обращается к ней с помощью кнопки. Итак, вот так (Creations <- Главная страница -> Создать форму), чтобы вы всегда могли получать доступ к деятельности творения с главной страницы или добавить к ней через форму создания activitiy – Strife

ответ

1

В основном вам не нужно создавать явное действие object, вам просто нужно начать действие с помощью api startActivity();

сейчас, в вашем случае,

будет метод onCreatePressed() в CreateActivity, как показано ниже,

public void onCreatePressed(View v) { 
    Intent intent = new Intent(CreateActivity.this, CreationActivity.class); 
    intent.putExtra(KEY_INFO, info); 
    intent.putExtra(KEY_BLAH1, blah1); 
    . 
    . 

    CreateActivity.this.startActivity(intent); 
} 

и CreationActivity вам придется переопределить onCreate() метод, который будет выглядеть

public void onCreate(Bundle savedInstanceState) { 
    Intent intent = getIntent(); 

    /* if info type is of int there is a method getIntExtra and so on, 
    * if it is a custom class then it must implement Serializable interface 
    * and there is method getSerializableExtra for this. 
    */ 
    InfoType info = intent.get<InfoType>Extra(KEY_INFO); 
    . 
    . 
    . 

    // setContentView(some_resource_id); 

    // inflate it with the data. 
} 
+0

Хорошо, я понимаю, что вы делаете, чтобы ваш пользователь использовал намерение отправлять данные в CreationActivity. Но теперь скажу, что я возвращаюсь в форму «Создать» и представляю другой набор данных, я хочу, чтобы новые данные добавлялись в CreationActivity без переопределения предыдущих данных, поэтому я в основном добавляю новый набор данных, используя этот метод Работа? – Strife

+0

для этой цели при возвращении вам придется хранить «старые» данные где-то вроде. файл, общие настройки или в db, чтобы вы могли отображать «старые», а также «новые» данные в CreationActivity. Я предложу вам перейти к этой [книге] (http://www.amazon.com/Professional-Android-2-Application-Development/dp/0470565527) – Rupesh

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