Создавайте новые «экраны» динамически - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть приложение, которое получает информацию из базы данных и динамически создает ImageButtons.Что я хочу, так это то, что когда я щелкаю по динамически созданному ImageButton, я хочу, чтобы он выполнил поиск в моей базе данных (что я знаю, как делать), а затем создал новое действие (или экран) с новыми динамически создаваемыми ImageButton'ами.

Как я могу это сделать?

Ответы [ 4 ]

0 голосов
/ 08 ноября 2011

просто запустите код, который у вас есть внутри вашего onCreate (оберните его в метод init (Params param)), и вызовите его внутри вашего onClickListener. конечно, исключите setContentView и findViewById.

0 голосов
/ 08 ноября 2011
 ImageButton imagebutton=new ImageButton(this);
 imagebutton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
             getDataFromDataBase();//In this method you get data from database
             Intent intent=new Intent(currentactivity.this,newactivity.class);//start new screen.. in this you can create imagebutton dynamically
             startActivity(intent);
          finish(); 

        }

});
0 голосов
/ 08 ноября 2011

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

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

0 голосов
/ 08 ноября 2011

Лучший вариант - прочитать документацию для разработчиков Android о том, как Intents можно использовать для запуска новой активности

An Intent object is passed to Context.startActivity() or 
Activity.startActivityForResult() to launch an activity or 
get an existing activity to do something new. 
(It can also be passed to Activity.setResult() to return 
information to the activity that called startActivityForResult().)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...