|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.08.2016, 18:17 | #1 |
Регистрация: 20.01.2009
Сообщений: 7
|
tableLayout как отловить значение строки по нажатию (для Андроид на java)
Я только начинающий, прошу помочь по возможность, уже 2 день ищу информацию так и не понял как реализовать. Необходимо по нажатию на табличной части tableLayout отловить все значения колонок которые нажодяться в строке по которую нажали. Код такой:
1.ZakazSpisok.java 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.tabl e); currentDateTime=(TextView)findViewB yId(R.id.currentDateTime); setInitialDateTime(); int z_data = 100; //Дата заказа String z_out = " + "; //Отправлена String z_klient = "ddddddddddtttttttttttttttttttttttt tttttttttttttttddddd"; //клиент заказа String z_adress = "ggggggggggggggffffffffffffffffffff fffffffffffffffffffffffffffffffffff fffffffffffffffffffgggggggggg"; //Адрес заказа 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) { //ЧТО СДЕСЬ ПРОПИСАТЬ ЧТОБЫ ОТЛОВИТЬ СТРОКУ ПО КОТОРОЙ КЛИКНУЛИ И //ПОЛУЧИТЬ ВСЕ ЗНАЧЕНИЯ КОЛОНОК ЭТОЙ СТРОКИ? //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_MON TH)) .show(); } // отображаем диалоговое окно для выбора времени public void setTime(View v) { new TimePickerDialog(ZakazSpisok.this, t, dateAndTime.get(Calendar.HOUR_OF_DA Y), dateAndTime.get(Calendar.MINUTE), true) .show(); } // установка начальных даты и времени private void setInitialDateTime() { currentDateTime .setText(DateUtils.formatDateTime(t his, 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_DA Y, 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_MON TH, dayOfMonth); setInitialDateTime(); } }; } |
21.08.2016, 18:17 | #2 |
Регистрация: 20.01.2009
Сообщений: 7
|
2. zakazform.xml
<?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 " androidrientation="vertical" tools:context="ru.rosplk.zakaz.Zaka zSpisok"> <LinearLayout androidrientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content " android:layout_alignParentBottom="t rue"> <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="Изменить время" androidnClick="setTime" android:id="@+id/timeButton" android:layout_weight="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content " android:text="Изменить дату" androidnClick="setDate" android:id="@+id/dateButton" android:layout_weight="1" /> </LinearLayout> <LinearLayout androidrientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content " android:layout_gravity="center_hori zontal"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content " android:id="@+id/txtCommint" android:layout_gravity="center_hori zontal" android:hint="@string/commint_txt" /> </LinearLayout> <LinearLayout androidrientation="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_hori zontal" /> <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|vert ical" android:visibility="visible" android:layout_gravity="center_hori zontal" > <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 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> |
21.08.2016, 18:22 | #3 |
Новичок
Джуниор
Регистрация: 21.08.2016
Сообщений: 1
|
Не могли бы вы, скажем залить в файл, и отправить его через файлообменник. так будет прощё
|
21.08.2016, 18:42 | #4 |
Регистрация: 20.01.2009
Сообщений: 7
|
Скопировал папку с самим проектом, проблема в файле ZakazSpisok.java
http://www.fayloobmennik.net/6518599
вот по такой табличке кликаю http://www.fayloobmennik.net/6518622 Последний раз редактировалось alegator74; 21.08.2016 в 18:56. Причина: добавил |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Можно ли написать веб сервер на Яве для клиента на Андроид,имея под рукой только телефон на том самом андроид? | Nevesel | Помощь студентам | 10 | 07.06.2016 02:29 |
Подскажите новичку - как начать заниматься Java программированием под платформу Андроид | УвасНовичок | Помощь студентам | 6 | 14.08.2014 13:11 |
Портирование Java me на Андроид | MaDriver | Java Мобильная разработка (Android) | 1 | 20.12.2011 18:18 |
Как отловить значение из таблицы? | mik | Microsoft Office Excel | 5 | 27.10.2008 16:34 |