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

TableLayout как отловить значение строки по нажатию (для Андроид на java) - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android MediaPlayer: как продолжить работу аудио-плеера в фоновом режиме? http://www.cyberforum.ru/android-dev/thread1796905.html
Как продолжить работу ауди плеера в фоновом режиме? Сервис создал, но что туда надо передать? Весь код выполняется в Activity.
Программирование Android Android WebSocket Здравствуйте, начинаю разбиратся с WebSocket, использую библиотеку nv WebSocket Client, соединится с сервером получилось, передать и получить сообщение тоже. Но у меня есть несколько Activity в... http://www.cyberforum.ru/android-dev/thread1796791.html
Программирование Android Принцип работы RecyclerView
Можете объяснить принципп работы RecyclerView во время скроллинга? Как он заполняется элементами? Сколько элементов находится в каждый момент времени в этом виджете при скроллинге? Какой максимальный...
Программирование Android Передача параметров внутрь apk
Всем привет! Для аналитики установок приложения нужно передавать идентификатор клика внутрь apk. Как я себе это представляю: есть распакованный из apk архив приложения, при переходе юзера скрипт...
Программирование Android Ошибка с xml разметкой после добавления Drawer http://www.cyberforum.ru/android-dev/thread1796560.html
Я добавил в свою активность Drawer, и после этого она перестала запускаться и появилась вот эта ошибка: 08-20 17:50:52.920 23304-23304/spsoft.myapplication E/AndroidRuntime: FATAL EXCEPTION: main ...
Программирование Android MediaPlayer: не получается воспроизвести музыкальный файл из списка Не получается воспроизвести музыкальный файл из списка. Алгоритм такой: записал все media файлы на устройстве в список, далее отобразил названия треков в listview. Скажите как теперь запустить... подробнее

Показать сообщение отдельно
alegator74
1 / 1 / 0
Регистрация: 21.08.2016
Сообщений: 17

TableLayout как отловить значение строки по нажатию (для Андроид на java) - Программирование Android

21.08.2016, 18:06. Просмотров 493. Ответов 8
Метки (Все метки)

Я только начинающий, прошу помочь по возможность, уже 2 день ищу информацию так и не понял как реализовать. Необходимо по нажатию на табличной части tableLayout отловить все значения колонок которые находятся в строке по которую нажали. Код такой:


1.ZakazSpisok.java

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.DatePicker;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.TimePicker;
import java.util.Calendar;
 
/**
 *
 * @author 1
 */
public class ZakazSpisok extends Activity implements View.OnClickListener {
    
    TextView currentDateTime;
    Calendar dateAndTime=Calendar.getInstance();
    TableLayout tableLayout;
    
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.zakazforms);
          
                tableLayout = (TableLayout)findViewById(R.id.table);
                
                currentDateTime=(TextView)findViewById(R.id.currentDateTime);
                setInitialDateTime();
                
                int z_data = 100; //Дата заказа
                String z_out = " + "; //Отправлена
                String z_klient = "ddddddddddtttttttttttttttttttttttttttttttttttttttddddd"; //клиент заказа
                String z_adress = "ggggggggggggggffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggg"; //Адрес заказа
                int z_summa = 20; //Сумма заказа
                int day = 0; //Счётчик заявок
 
                //Используем цикл, в котором будем для нашей таблицы выводить заявки
                while (z_data > 0) {
                  day++; //Счётчик заявок увеличиваем в начале цикла, т.к. начальное значение у него 0
                  
                  z_data = z_data-1;
 
                  //Передаём в метод добавления строки вычисленные значения
                  addRow(day, z_out, z_data, z_klient, z_adress,z_summa);
                }
                
                 
                 tableLayout.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        
                        //[COLOR="Red"]ЧТО СДЕСЬ ПРОПИСАТЬ ЧТОБЫ ОТЛОВИТЬ СТРОКУ ПО КОТОРОЙ КЛИКНУЛИ И [/COLOR]
                        //[COLOR="red"]ПОЛУЧИТЬ ВСЕ ЗНАЧЕНИЯ КОЛОНОК ЭТОЙ СТРОКИ?[/COLOR]
                        
                         //for (int i = 0; i < tableLayout.getChildCount(); i++){
                        //думаю получил строку в зоне видимости планшета, а значит и места куда нажали      
        
                        //TableRow tablerow = (TableRow)tableLayout.getChildAt(i);
        
                        //for (int j = 0; j < tablerow.getChildCount(); j++) {
 
                        //    TextView tv = (TextView) tablerow.getChildAt(j);
                        //    String s = tv.getText().toString();
                        //}
                        
                        
                    }                
                 
                });
                 
                
    }
        
   public void addRow(int c0, String c2, int c1, String c3, String c4, int c5) {
    //Сначала найдем в разметке активити саму таблицу по идентификатору
    //TableLayout tableLayout = (TableLayout) findViewById(R.id.table);
    //Создаём экземпляр инфлейтера, который понадобится для создания строки таблицы из шаблона. В качестве контекста у нас используется сама активити
    LayoutInflater inflater = LayoutInflater.from(this);
    //Создаем строку таблицы, используя шаблон из файла /res/layout/table_row.xml
    TableRow tr = (TableRow) inflater.inflate(R.layout.table_row, null);
    //Находим ячейку для номера дня по идентификатору
    TextView tv = (TextView) tr.findViewById(R.id.col1);
    //Обязательно приводим число к строке, иначе оно будет воспринято как идентификатор ресурса
    tv.setText(Integer.toString(c0));
    //Ищем следующую ячейку и устанавливаем её значение
    tv = (TextView) tr.findViewById(R.id.col2);
    tv.setText(Integer.toString(c1));
    //...и так далее для всех значений
    tv = (TextView) tr.findViewById(R.id.col3);
    tv.setText(c2);
    tv = (TextView) tr.findViewById(R.id.col4);
    tv.setText(c3);
    tv = (TextView) tr.findViewById(R.id.col5);
    tv.setText(c4);
    tv = (TextView) tr.findViewById(R.id.col6);
    tv.setText(Integer.toString(c5));
    
    tableLayout.addView(tr); //добавляем созданную строку в таблицу
       
    
  }     
 
 @Override
    public void onClick(View v) {
       
        for (int i = 0; i < tableLayout.getChildCount(); i++){
            //думаю получил строку в зоне видимости планшета, а значит и места куда нажали
         
        //tableLayout.getLayoutMode();
        TableRow tablerow = (TableRow)tableLayout.getChildAt(i);
        
        for (int j = 0; j < tablerow.getChildCount(); j++) {
 
           TextView tv = (TextView) tablerow.getChildAt(j);
           String s = tv.getText().toString();
        }
        
        
}
        
    }
    
    // отображаем диалоговое окно для выбора даты
    public void setDate(View v) {
            new DatePickerDialog(ZakazSpisok.this, d,
            dateAndTime.get(Calendar.YEAR),
            dateAndTime.get(Calendar.MONTH),
            dateAndTime.get(Calendar.DAY_OF_MONTH))
            .show();
    }
 
    // отображаем диалоговое окно для выбора времени
    public void setTime(View v) {
            new TimePickerDialog(ZakazSpisok.this, t,
            dateAndTime.get(Calendar.HOUR_OF_DAY),
            dateAndTime.get(Calendar.MINUTE), true)
            .show();
    }
    // установка начальных даты и времени
    private void setInitialDateTime() {
 
        currentDateTime .setText(DateUtils.formatDateTime(this,
                        dateAndTime.getTimeInMillis(),
                        DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR 
                        | DateUtils.FORMAT_SHOW_TIME));
    }
 
    // установка обработчика выбора времени
    TimePickerDialog.OnTimeSetListener t=new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            dateAndTime.set(Calendar.MINUTE, minute);
            setInitialDateTime();
        }
    };
 
    // установка обработчика выбора даты
    DatePickerDialog.OnDateSetListener d=new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            dateAndTime.set(Calendar.YEAR, year);
            dateAndTime.set(Calendar.MONTH, monthOfYear);
            dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            setInitialDateTime();
        }
    };
 
    
}
2. zakazform.xml
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="ru.rosplk.zakaz.ZakazSpisok">
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
 
 
        <EditText
            android:id="@+id/currentDateTime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18dp"
            android:layout_weight="1" />
 
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Изменить время"
            android:onClick="setTime"
            android:id="@+id/timeButton"
            android:layout_weight="1" />
 
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Изменить дату"
            android:onClick="setDate"
            android:id="@+id/dateButton"
            android:layout_weight="1" />
    </LinearLayout>
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal">
 
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtCommint"
        android:layout_gravity="center_horizontal"
        android:hint="@string/commint_txt" />
        
    </LinearLayout>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/tovar_btn"
        android:id="@+id/btnTovar"
        android:layout_gravity="center_horizontal" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/vigruzka_btn"
        android:id="@+id/btnBD" />
 
    </LinearLayout>
 
<HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/horizontalScrollView" 
        android:scrollbars="horizontal|vertical" 
        android:visibility="visible"      
        android:layout_gravity="center_horizontal" >
 
        <ScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="visible"            
            android:id="@+id/scrollView" >
 
            
            <TableLayout
                android:id="@+id/table"
                android:background="#ffcc00"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                
            </TableLayout>
            
        </ScrollView>
    </HorizontalScrollView>  
    
    
            
</LinearLayout>

3. table_row

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
    
<TableRow xmlns:android="http://schemas.android.com/apk/res/android" android:background="#1E213D" android:layout_margin="1dip" android:id="@+id/table_row">
  <TextView android:id="@+id/col1" android:text="" 
  android:background="#FCFBF8" android:layout_margin="1dip"/>
  <TextView android:id="@+id/col2" android:text="" 
  android:background="#FCFBF8" android:layout_margin="1dip"/>
  <TextView android:id="@+id/col3" android:text="" 
  android:background="#FCFBF8" android:layout_margin="1dip"/>
  <TextView android:id="@+id/col4" android:text="" 
  android:background="#FCFBF8" android:layout_margin="1dip"/>
  <TextView android:id="@+id/col5" android:text="" 
  android:background="#FCFBF8" android:layout_margin="1dip"/>
  <TextView android:id="@+id/col6" android:text="" 
  android:background="#FCFBF8" android:layout_margin="1dip"/>
</TableRow>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru