2015-03-05 2 views
-6

Сценарий - это операция А получает вход от активности Б после ее выхода, обрабатывает данные и обновляет макет С (с данным идентификатором, relativelayout) в рамках действия А соответственно.Динамическое создание пользовательского интерфейса Android в Java-коде

И это мой подход:

  1. В сработавшей функции, создать новый RelativeLayout
  2. Update RelativeLayout с соответствующими атрибутами, и добавить вид (кнопки и TextViews) к нему
  3. Использование Findr .ID.layout_C_id для извлечения C
  4. Отчет на
  5. Я застрял

Вопросы:

  1. Как продолжить?

  2. RelativeLayout (контекст контекста) является конструктором. Что я должен пройти?

  3. Я думал об использовании updateViewLayout (View view, ViewGroup.LayoutParams params), но он, похоже, не работает?

+0

не получить вам, что именно вы пытаетесь обновить.. «Дайте нам пример. Кстати, вам нужно передать« this »(контекст активности) в« RelativeLayout »(Context con текст) '. – Hemanth

+0

Я пытался обновить не менее 2 макетов в рамках действия. Например, в действии есть 3 макета. После того, как вход принят и обработан, макеты 2 и 3 скрыты, некоторые атрибуты макета 1 обновлены, одна из которых - кнопка, которая заставит макет 2 и 3 снова стать видимыми. – rustyengineer

+0

Я не думаю, что добавление нового представления каждый раз здесь оптимально. Вы можете скрыть макеты кнопкой с помощью 'setVisibility()' и обновить представления в макете 1. Например. для 'textView.setText()' или 'imageView.setImageResource()'. – Hemanth

ответ

0

Я думаю, что вам не хватает основной пункт здесь :-(Если вы хотите обновить уже существующий макет, вы не должны надуваться новый. Вместо этого, вы запрашиваете мнения, которые вы хотите обновить и поместить данные в них, как это:.

TextView t = myLayout.findViewById(R.id.someTextViewId); 
t.setText(newlyObtainedData); 

Что касается контекста, каждый вид деятельности наследует после нее, так что вы можете просто передать this

+0

Спасибо. Теперь это имеет гораздо больше смысла. Нет оправдания, но я буквально просто познакомился с андроидом из хакатона, так что все еще делаю детские шаги. – rustyengineer

+0

Нет проблем. В основном, в Android вы работаете с уже созданными представлениями, полученными, как указано выше. Рекомендуется сохранять их как поля в Activity, только ссылаясь на findViewById() в onCreate() – Kelevandos

+0

Кроме того, если ответ вам помог, отметьте его как правильно. Благодаря! :-) – Kelevandos

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