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

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

Войти
Регистрация
Восстановить пароль
 
tolya1095
10 / 7 / 1
Регистрация: 12.10.2012
Сообщений: 158
#1

Использование арифметического цикла в программируемом layout - Android

14.02.2014, 16:07. Просмотров 548. Ответов 0
Метки нет (Все метки)

Надеялся, что сделаю прокручиваемую генерируемую программным способом таблицу, а выходит столбец.
Во вложенном цикле я хотел заставить TextView появляться по горизонтали, а складывается ощущение, что он либо их вообще не генерирует, либо накладывает друг на друга.
Кликните здесь для просмотра всего текста
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
40
41
import android.app.Activity;
import android.os.Bundle;
import android.widget.HorizontalScrollView;
import android.widget.ScrollView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        TextView[][] TVM = new TextView[10][10];
        TableRow[] TRM = new TableRow[10];
        
        TableLayout TL = new TableLayout(this);
        
        for(int i=0;i<10;i++){ //Создаем строку
        
            for(int j=0;j<10;j++){ //Создаем текст в ширину
                TVM[i][j] = new TextView(this);
                TVM[i][j].setText("Привет #[" + i + "][" + j + "]!");
                TRM[i]= new TableRow(this);
                TRM[i].addView(TVM[i][j]);
            }
            
            TL.addView(TRM[i]);
        }
 
        HorizontalScrollView HSV = new HorizontalScrollView(this);
        HSV.addView(TL);
        
        ScrollView SV = new ScrollView(this);
        SV.addView(HSV);
        
        setContentView(SV);
        
    }
}


Добавлено через 4 часа 28 минут
Пытался применить в цикле отступ по левому краю, чтобы отступ генерировался по формуле 50*j и чтобы я мог увидеть остальные элементы, которые, как мне казалось, находятся друг в друге. Из этого вышло, что виден изначальный результат только с отступом от левого края в 450. Пользовался LogCat и цикл все эти значения проходит, т.е. ничего не теряется. Предполагаю, что все TextView вляпаны друг в друга, но как их "оторвать" для меня пока вопрос.

Добавлено через 22 часа 22 минуты
Попытался упростить себе жизнь, но сделал только хуже.
Кликните здесь для просмотра всего текста
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
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
 
public class MainActivity extends Activity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TableLayout tablelayout = (TableLayout) findViewById(R.id.tablelayout);
 
        TextView[][] TVM = new TextView[10][10];
        TableRow[] TRM = new TableRow[10];
        
        TVM[0][0] = new TextView(this);
        TVM[0][0].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        TVM[0][0].setText(000);
        TRM[0] = new TableRow(this);
        TRM[0].addView(TVM[0][0]);
        tablelayout.addView(TRM[0]);    
        
    }
}


Кликните здесь для просмотра всего текста
XML
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
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
 
            <HorizontalScrollView
                android:id="@+id/horizontalScrollView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >
 
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal" >
 
                    <TableLayout
                        android:id="@+id/tablelayout"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" >
                    </TableLayout>
 
                </LinearLayout>
            </HorizontalScrollView>
 
        </LinearLayout>
    </ScrollView>


Подключаюсь к уже существующему tablelayout и пытаюсь в нем создать tablerow и textview.
TableRow нормально отображается(белым окошком), а при попытке запихнуть textview в tablerow получаю вылет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2014, 16:07     Использование арифметического цикла в программируемом layout
Посмотрите здесь:

Авторазмер в Layout Android
Android TextViews и Layout
Android layout 9 inch
Drawer Layout Android
Android Использование элемента другого layout
Android Использование разных onTouch для двух Layout элемента
Android Имя layout
Android Перерисовка layout
Квадратный Layout Android
Android переходы layout
Лупа на layout Android
Android layout Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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