Разработка макета головоломки в Android

Я новичок в Android.

Я хочу разработать приложение, где я могу изменить экраны на основе выбранной кнопки. Приложение может иметь 20 + экранов с кнопками или формой ввода. С экрана 1 я должен изменить экран на какой-то другой экран. Я думал Так, где я могу изменить детей.

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

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

обновление :

@Ghost, из вашего решения еще 1 вопрос возник в моем уме. Для экранов, где мне нужно показывать только кнопки в определенном формате, я добавил GridView и ButtonAdapter с помощью этот сайт.

Если я добавляю clickListener только в ButtonAdapter, то как я могу передать параметры setIntent (FooFooActivity.этот....) ????? У меня есть Conext в ButtonAdapter - я могу напечатать его на FooFooActivity и могу работать. Я могу дать ifs в ButtonAdapter в onclick (), чтобы заставить t перейти на правильный экран. Но setIntent cna работает так, как я говорю или что-то в этом роде. Если это может работать, то для многих экранов мой один класс GridView и один класс ButtonAdapter могут сделать все работа.

новые обновления на испытаниях:

@Ghost, я попытался и обнаружил, что выше setIntent (FooFooActivity.этот....) в ButtonAdapter не работает-как и в ButtonAdapter, он не найдет возможности для FooFooActivity.этот.

  • в моей FooFooActivity я не могу установить onclikcListeners для кнопок, добавленных через ButtonAdapter. Я попытался с таблицы.getChild (i), но просто не устанавливается каким-либо образом.
  • я также сделал еще один макет формате XML (buttonspage.xml) с 6 кнопками и DataActivity, который использует его. Это отлично работает, и при нажатии кнопки также отображается FooFooActivity.
  • использовать тот же buttonspage.XML-макет в нескольких действиях я устанавливаю содержимое FooFooActivity как buttonspage и устанавливаю его прослушиватели щелчка кнопки. Для кнопки 1 я установил выход из приложения, а для другой кнопки-отображение DataActivity.

  • Итак, с этим я получил 2 активности, FooFoo, который показывает DataActivity / выход и DataActivity, который возвращается в FooFoo. Его цикл, который начинается и заканчивается FoofooActivity. Если я сначала нажму "выход", он завершится. Но если я нажму "выход" после показа DataActivity, то он просто не выйдет и покажет только DataActivity. Это то, что я не могу использовать один и тот же макет в нескольких действиях ?? Или я где-то ошибаюсь (сомневаюсь) ? Тот же макет buttonpage я должен использовать на 10-12 страницах, за исключением другого текста на кнопке и событиях. Так думала Написать Один Раз Использовать Несколько Раз. Также нужно динамически изменять стили кнопок всех этих кнопок страниц.

спасибо

1 ответов


насколько ваш первый экран касается, это зависит от активности и выполняется непосредственно при запуске проекта. Например, если у вас есть проект с именем FooFoo, затем при компиляции / создании вашего проекта android, android сам называет первый класс как FooFooActivity (т. е., если вы разрешили android создавать активность из него). Конечно,вы можете переименовать он тогда и там сам. Итак, однажды вы скомпилируйте свой пользовательский интерфейс по умолчанию main.xml файл и вернуться к файлу java FooFooActivity, внутри onCreate метод. Эта строка setContentView(R.layout.main);эта строка наборы на посмотреть на содержание что внутри main.в XML. При запуске программы и при запуске эмулятора, эмулятор представляет вид вашего main.xml если ваш проект не содержит каких-либо сборник или во время выполнения ошибки.

теперь, приходя к вашим 20 + макетов: вы можете иметь их все в папке макета. Назначьте по крайней мере один buttonна каждом экране, который приведет вас к некоторому экрану, скажите " XYZ "и предположим, что имя класса"ABC". Предположим также, что ваш класс FooFooActivity приведет вас к этому классу ABC. Следующие шаги приведут вас к тому, как сделать навигационную часть.

И. внутри onCreate метод вашего класса FooFooActivity, вы уже есть setContentView. Теперь, после этой строки добавьте следующие строки:

 Button button = (Button)findViewById(R.id.button1);
    button.setOnClickListener(new View.OnClickListener() 
            {
                public void onClick(View v) 
                {
                    Intent intent = new Intent(FooFooActivity.this, ABC.class);
                    startActivity(intent);  
                }
            });

By передача намерениях вы можете направлять себя / своего пользователя на нужный экран / активность.

II. Пожалуйста, имейте в виду, что в вашем классе ABC подразумевают то же самое onCreate метод и поместите макет XYZ внутри setContentView такой: setContentView(R.layout.XYZ);

III. В вашем файле манифеста, после вашего

 <activity
            android:label="@string/app_name"
            android:name=".FooFooActivity" >


            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

добавить следующий:

<activity 
            android:name=".ABC"
            android:label="@string/app_name"
            >
        </activity>

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

обратите внимание, что это только для показа 2 экранов для вашего пользователя. Нужно повторять это по 20+ раз. Я не знаю / не вижу другого пути.

что касается ваших макетов, я бы предложил вам придерживаться Относительная Разметка или Линейная Разметка. Как правило, большинство "нормальных" макетов может быть достигнуто либо одним из них, либо их сочетание. Если вы хотите больше, вы всегда можете найти помощь на Сайт Разработчиков Android или Переполнение Стека. В любом случае, есть много других вещей, которые я не смог объяснить здесь, но я собираюсь сделать это в свое время. Вы всегда можете обратиться к большим книгам, таким как Привет Android, Программирование Android и Обучение Android. Даже CommonsWare - Марк Мерфи есть свой набор книг, которые довольно популярны. Вы всегда можете начать с любого из них.

надеюсь, что это помогает. Всего наилучшего!

РЕДАКТИРОВАТЬ ПОСЛЕ ОБНОВЛЕНИЯ:

конечно, он вернет последнее действие, потому что я предполагаю, что у вас есть следующий фрагмент кода с кнопкой выхода:

Button exit = (Button)findViewById(R.id.button2);
        exit.setOnClickListener(new OnClickListener() 
        {

            public void onClick(View v) 
            {
                finish();

            }
        });

Итак, в основном то, что вы делаете, это прекращение этой конкретной ABC/основной деятельности. Это означает, что android перенесет вас на предыдущий экран/активность. Вот и все. Если вы держите тот же макет и планировать его использовать для различных видов деятельности, все будет просто запутаться. С помощью всего 2 экранов / действий, это достаточно запутанно для вас на данный момент. Представьте, что может произойти с 20+. Ну, дизайн в конечном счете оставлен вам. Это все, что я могу сказать.