2012-02-13 2 views
0

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

Что я могу сделать, установив обратно кнопки в каждом виде, но я бы хотел использовать жесткую кнопку для Android.

Я пытался что-то вроде этого:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{  
    if(keyCode==KeyEvent.KEYCODE_BACK) 
      { 
     finish(); 
      } 
return false; 
} 

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

Вот код, с помощью которого я меняю мнение (это метод в моей основной деятельности):

public void CheckIfUserIsLogedIn() 
{ 
    int userPresence = localDatabase.CheckUserPresence(); 
    if (userPresence == 0) 
    { 
     setContentView(R.layout.main); 
    } 
    else 
    { 
     setContentView(R.layout.userlogedon); 
    } 
} 

Спасибо.

+0

Значит, вы хотите показать предыдущий вид на кнопку «Назад»? – Siten

+0

Да @ Ситен, это правильно. –

+0

Выполняете ли вы текущую деятельность при переходе к следующей активности? Укажите код, с которого вы начинаете новое или следующее действие. –

ответ

2

Посмотрите!

Вы делаете это неправильный путь ..

Activity класс должен иметь только по содержанию View. (потому что это рекомендуется и прост в использовании и реализации).

И если вы хотите перейти к следующему View, покажите его под другим отдельным Activity.

, когда вы закончите, вы будете автоматически перенаправлены на предыдущий Activity.

(и вам не нужно запоминать предыдущий вид :))

See here, как работать с Activity суммируется.

+0

Спасибо за ваш ответ @Adil, Ok, поэтому, если я понимаю, мне нужно использовать другой класс для каждого Просмотра, который у меня есть? –

+0

@Ana: Да. Если вы хотите показать, что вы видите «Вход в систему», у вас должна быть функция «LoginActivity», которая будет отображать ваш «R.layout.userlogedon» в виде содержимого. Счастливое кодирование! Ура! :) –

+0

@Ana: Да. Вам нужно будет использовать различные действия для всех соответствующих представлений. –

1

Я не уверен, что правильно понял вашу проблему, потому что Android делает все это для вас автоматически. После того, как вид открываются, когда вы переключаетесь на другую точку зрения он сделал паузу (на экране, но не фокус) или остановить (не имеет фокуса)

http://developer.android.com/reference/android/app/Activity.html

Если текущий вид (активность) был запущен самым предыдущий вид (действие), нажатие кнопки «Назад» заставит вас «закрыть» текущий вид и вернуться к предыдущему.

Теперь две вещи:

  1. Возможно, ваш просто открыв все мнения wihtin той же деятельности, показывая или отключить компоненты, плохой способ делать и не рекомендованными андроида. То, что вы должны сделать, - это 1 вид = 1 активность.

  2. Вы думаете, как «iPhone/iPad», где вам нужно реализовать кнопки «назад» в «представлениях». В android вам не нужно это делать. Помещение команды «finish» в ваш код в этот момент, похоже, закрывает приложение, которое заставляет меня думать, что вы запрограммировали, как описано в пункте 1.

Надеется, что это помогает

EDIT:

Чтобы начать новую деятельность это сделать, как этот

startActivity(new Intent(this, MyOtherActivity.class)); 

вы положили это в коде, где вы хотите загрузить новый вид (деятельность)

Теперь, если вы хотите t ransfer некоторую информацию между различными видами деятельности вы должны сделать что-то вроде этого:

Intent myIntent; //intent declaration 

int aNumber = 10; // info to send to other activity 
String aString = "abcd"; // info to send to other activity 

// link Intent to the other activity 
myIntent = new Intent(view.getContext(), MyOtherActivity.class) 

//put the extra info 
myIntent.putExtra("myNumber", aNumber); 
myIntent.putExtra("myString", aString); 

//start the new view/activity 
startActivity(myIntent); 

и в новой открытой деятельности вы извлечь Infos, как это (в OnCreate обычно)

int aNumber; 
String aString; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    aNumber= getIntent().getExtras().getInt("myNumber"); 
    aString= getIntent().getExtras().getString("myString"); 
} 
+0

Спасибо @HpTeam, да, вы правы, у меня есть одна деятельность для всех моих взглядов. Я постараюсь изменить это. –

+0

Я редактирую свой ответ, чтобы дать вам больше объяснений – HpTerm

0

На самом деле им не уверен, что понимаю точно, но ..

сделайте карту или общие настройки, а на задней кнопке установите последний вид на карте или общие предпочтения.

В процессе вызова или при запуске выберите данные, которые вы сохранили.

это поможет вам.

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