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

Как программно изменить - Android

Войти
Регистрация
Восстановить пароль
 
vlad4475
4 / 4 / 0
Регистрация: 14.07.2015
Сообщений: 26
31.03.2016, 19:31     Как программно изменить #1
Здравствуйте! Не так давно учусь программировать под Андроид и столкнулся с такой проблемой:

Я хочу программно создать n кнопок и расположить их так, что бы они все помещались на экране в строчку (с помощью XML делать так умею, просто ставил width = 0, weight = 1 у всех кнопок). Но с динамическими кнопками такое не получается. Во-первых button.setWidth(0); (или даже button.setWidth(1) не даёт эффекта вообще, а weight я установить вообще не могу.

Долго искал, нашёл, что нужно делать через LayoutParams; button.setLayoutParams(params); Но когда я прописываю button.setLayoutParams(params);, то кнопки вообще исчезают...

Вот сам код:

Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
34
35
36
37
38
39
package com.example.myapp;
 
import android.app.Activity;
import android.os.Bundle;
import android.text.Layout;
import android.util.StringBuilderPrinter;
import android.view.ViewDebug;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
 
import java.lang.annotation.Annotation;
 
public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        GoWork();
    }
 
    void GoWork() {
        TableRow tableRow = (TableRow) findViewById(R.id.Row1);
        //tableRow.setLayoutParams(new TableLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
        ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(50, 50);
        for (int j = 0; j < 6; j++) {
            Button button = new Button(this); //Вот тут создаю свои кнопки 
            button.setText("" + j);
           // button.setWidth(2); - Вообще не работает
            [COLOR="Red"]button.setLayoutParams(params); //Когда активирую, то кнопки вообще не отображаются [/COLOR]
            tableRow.addView(button, j);
        }
 
    }
}


И вот что у меня в XML творится:

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
 
    <TableLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <TableRow
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/Row1">
        </TableRow>
    </TableLayout>
</LinearLayout>


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


Подскажите пожалуйста, что я не так делаю?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2016, 19:31     Как программно изменить
Посмотрите здесь:

Как программно отправить письмо? Android
Android Как программно выключить смартфон?
Android как программно сделать скриншот экрана
Как программно менять View? Android
Как удалить ListView программно? Android
Android Не могу изменить высотку и ширину Image программно
Как программно изменить textview? Android
Android Как программно создать TextEdit
Программно изменить ширину LinearLayout Android
Android Программно изменить размер ImageView
Android Изменить процент зарядки батареи программно
Android Изменить свойства программно созданного элемента

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vlad4475
4 / 4 / 0
Регистрация: 14.07.2015
Сообщений: 26
31.03.2016, 20:33  [ТС]     Как программно изменить #2
Ужасно тупанул, но вдруг кому понадобится.. Вот как исправил:
Дело в том, что я использовал
Java
1
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(50, 50);
А надо было именно TableRow
Java
1
TableRow.LayoutParams params =  new TableRow.LayoutParams(50, 50);
Извините за беспокойство.
Yandex
Объявления
31.03.2016, 20:33     Как программно изменить
Ответ Создать тему

Метки
android, java androd, view
Опции темы

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