Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
#1

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

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

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

Программное добавление View
Доброго времени. Знаю что на эту тему много инфы, как на форуме так и на других...

Программное добавление View
Не могу разобраться: нужно программно прилепить н-ное количество вьюх. Делаю...

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

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

Программное добавление строкового ресурса
Здравствуйте! Я храню данные для ListView в XML-файле строковых ресурсов:...

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

Добавлено через 5 минут
вот эту тему поглядите Как добавить поддержку прокрутки в собственном виджете?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 19:05 #5
какой лаяут используете? как добавляете? в какой последовательности?
0
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.10.2012, 21:38  [ТС] #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);
       
    }
}
Что делаю не так?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 21:55 #7
судя по тому, что это LinearLayout, кнопка не на заднем плане а просто за пределами окна.
0
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.10.2012, 22:07  [ТС] #8
Цитата Сообщение от V0v1k Посмотреть сообщение
судя по тому, что это LinearLayout, кнопка не на заднем плане а просто за пределами окна.
Закомментировал параметры Gravity - результат тот же.
0
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.10.2012, 22:23  [ТС] #9
Блин, вот оно что получается - если сначала создавать кнопку, а потом Draw2D, то кнопка появляется, а справа от нее уже все остальное. А как сделать так, чтобы кнопки были поверх Draw2D?
Программное добавление View
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 23:11 #10
RelativeLayout / FrameLayout
0
31.10.2012, 23:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 23:11

Программное добавление рамки Layout
Добавляю рамку к Layout с помощью XML файла: <shape...

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

Добавление View (кнопки) в PreferenceScreen
Здравствуйте! не получается добавить View (кнопку) в общую структуру...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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