Основной макет / навигационный вопрос для разработки Android - PullRequest
3 голосов
/ 05 мая 2011

Каков наилучший подход для навигации между «окнами» в приложении для Android?

Я говорю "окна", потому что я не правильно использую терминологию в Java.Я только начал.

Допустим, первый экран, который видит пользователь, это ввод имени пользователя и пароля с помощью кнопки.При успешном входе в систему отображается совершенно новое «окно» с соответствующей зарегистрированной информацией?

Я попытался поместить 2 EditTexts и Button в представление (используя вкладку графического макета Main.xml [eclipse]) в main.xml, но это не понравилось.

Ответы [ 6 ]

3 голосов
/ 05 мая 2011

Это выдержка из страницы http://developer.android.com/guide/topics/fundamentals.html

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

Вот учебник о том, как переключаться между действиями: http://www.warriorpoint.com/blog/2009/05/24/android-how-to-switch-between-activities/

Не добавляйте все действия в AndroidManifest.xml!

1 голос
/ 05 мая 2011

Вы можете рассматривать действия как "окна" для Android.

Создание различных форматов XML для ваших различных действий и одним нажатием кнопки из действия A начните действие B и закройте A ..., чтобы привести пример:

// in activity A for the button click:

public void onButtonClick(View view) {
    Intent intent = new Intent(this, B.class);
    activity.startActivity(intent);
    activity.finish();
}






// in activity B you have:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.B); //using your B.xml layout
}
0 голосов
/ 05 мая 2011

Intent intent = new Intent (this, otherclassname.class);

  intent.putExtra("userid", userfield);  //sends the userid

  startActivity(intent);

public void onCreate (Bundle saveInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.showhistoricweek);


    senduserid = getIntent().getIntExtra("userid", 0); //gets the userid
0 голосов
/ 05 мая 2011

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

Лабораториипреподавал здесь с курса колледжа в Cal Poly SLO, что помогло мне быстро познакомиться с Android.

0 голосов
/ 05 мая 2011

«Окна» в Android называются «Действиями», и вы перемещаетесь между ними с помощью Intents.

Intent intent = new Intent(GroupPickerActivity.this, SmsActivity.class);
startActivity(intent);
0 голосов
/ 05 мая 2011

Способ Android сделать это - использовать Activity для каждого «окна», как вы их называете.Вы перемещаетесь между операциями с помощью startActivity ().

У вас не должно возникнуть проблем с размещением 2-х edittexts и кнопки внутри xml-макета, поэтому проблема, с которой вы столкнулись, вероятно, связана с чем-то другим.Вы проверили вывод журнала на наличие ошибок?Многие новички получают то, что вам нужно объявлять каждое действие в файле mainfest, иначе Android не загрузит его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...