Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
#1

Программное добавление View - Программирование Android

31.10.2012, 03:11. Просмотров 2051. Ответов 9
Метки нет (Все метки)

Всем привет! У меня в роли setContentView выступает класс Draw2D, в котором я собираюсь рисовать кое-какую графику. Графика рисуется замечательно, но вот проблема - в нем я не могу программно создавать кнопки. У класса LinearLayout есть метод .addView (child, params). А у класса Draw2D (а он унаследован от View) этот метод отсутствует. Как выходить из данной ситуации? Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 03:11     Программное добавление View
Посмотрите здесь:

Программное добавление View - Программирование Android
Не могу разобраться: нужно программно прилепить н-ное количество вьюх. Делаю так: Dialog dialog = new Dialog(pd.getContext()); ...

Программное добавление View - Программирование Android
Доброго времени. Знаю что на эту тему много инфы, как на форуме так и на других ресурсах, но решения своей проблемы все же не нашел. суть...

Программное добавление View элементов в Fragment - Программирование Android
Здравствуйте. Проблема такая: в приложении есть 2 вкладки. Переключение между ними реализуются через ViewPager и FragmentStatePagerAdapter....

Программное добавление элементов - Программирование Android
Уважаемы подскажите такую ситуацию, не могу немного понять...Как на Relative разметке программно добавлять элементы, чтобы их можно было...

Добавление элемента - наследника View - Программирование Android
Здравствуйте. Пишу для Android простенькую игрушку. Для нее мне понадобилось написать класс, рисующий круг - наследник View. На экране...

Добавление View (кнопки) в PreferenceScreen - Программирование Android
Здравствуйте! не получается добавить View (кнопку) в общую структуру PreferenceScreen, через this.addContentView добавляется, но...

Программное добавление рамки Layout - Программирование Android
Добавляю рамку к Layout с помощью XML файла: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 03:54     Программное добавление View #2
засунуть Draw2D в лаяут и туда же добавлять другие View.
и уже этот лаяут уже запихать в setContentView
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.10.2012, 17:57  [ТС]     Программное добавление View #3
Цитата Сообщение от V0v1k Посмотреть сообщение
засунуть Draw2D в лаяут и туда же добавлять другие View.
Спасибо, вроде бы получилось, draw2d отображается в layout. Но вот только кнопка не добавляется (вернее, может и добавляется, но по всей видимости она находится на заднем плане, и потому ее не видно). Как добавить кнопку поверх draw2d?
Creative
22 / 8 / 1
Регистрация: 13.07.2012
Сообщений: 66
31.10.2012, 18:46     Программное добавление View #4
да вам не поверх нужно добавлять а рядом. вам просто свою вьюшку нужно в XML разметку вставить.

Добавлено через 5 минут
вот эту тему поглядите Как добавить поддержку прокрутки в собственном виджете?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 19:05     Программное добавление View #5
какой лаяут используете? как добавляете? в какой последовательности?
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.10.2012, 21:38  [ТС]     Программное добавление View #6
Цитата Сообщение от V0v1k Посмотреть сообщение
какой лаяут используете? как добавляете? в какой последовательности?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class EditActivity extends Activity 
{
    
    protected void onCreate(Bundle savedInstanceState) 
    {
       super.onCreate(savedInstanceState);
       setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
       requestWindowFeature (Window.FEATURE_NO_TITLE);
       
       LinearLayout linLayout = new LinearLayout (this);
       LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams
               (LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
       
       setContentView(linLayout);
    
       Draw2D draw2d = new Draw2D (this);
       draw2d.setLayoutParams(lParams);
       linLayout.addView(draw2d);
       
       lParams.gravity = Gravity.BOTTOM;
       lParams.gravity = Gravity.RIGHT;
       Button btnSwitch = new Button (this);
       btnSwitch.setText("Switch");
       linLayout.addView(btnSwitch, lParams);
       
    }
}
Что делаю не так?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 21:55     Программное добавление View #7
судя по тому, что это LinearLayout, кнопка не на заднем плане а просто за пределами окна.
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.10.2012, 22:07  [ТС]     Программное добавление View #8
Цитата Сообщение от V0v1k Посмотреть сообщение
судя по тому, что это LinearLayout, кнопка не на заднем плане а просто за пределами окна.
Закомментировал параметры Gravity - результат тот же.
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.10.2012, 22:23  [ТС]     Программное добавление View #9
Блин, вот оно что получается - если сначала создавать кнопку, а потом Draw2D, то кнопка появляется, а справа от нее уже все остальное. А как сделать так, чтобы кнопки были поверх Draw2D?
Программное добавление View
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 23:11     Программное добавление View
Еще ссылки по теме:

Программное добавление строкового ресурса - Программирование Android
Здравствуйте! Я храню данные для ListView в XML-файле строковых ресурсов: <string-array name="cat_names"> <item>Рыжик</item> ...

Добавление View в FrameLayout: ошибка в приложении - Программирование Android
Доброго времени суток! Хочу вот этот класс, который унаследован от View, добавить в уже созданный FrameLayout. Вот так не работает: ...

Программное создание GridLayout и добавление в него объектов - Программирование Android
Дисклеймер: Всем доброго дня! Я - новичок в написании программ под Android. Имеется небольшой опыт С++/С#, но речь не об этом. Я...

На какой тип Layout добавление View идёт быстрее - Программирование Android
Если я хочу разместить 3 View в Layoutе. То в каком Layoutе View разместить быстрее(ну скорость добавления View выше) в LinearLayout в...

Тип view - Программирование Android
Можно ли из кода узнать тип кликнутого view? например Button или TextView


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 23:11     Программное добавление View #10
RelativeLayout / FrameLayout
Yandex
Объявления
31.10.2012, 23:11     Программное добавление View
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru