Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2016, 18:17   #1
alegator74
 
Регистрация: 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();
}
};


}
alegator74 вне форума Ответить с цитированием
Старый 21.08.2016, 18:17   #2
alegator74
 
Регистрация: 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>
alegator74 вне форума Ответить с цитированием
Старый 21.08.2016, 18:22   #3
Hlebychet
Новичок
Джуниор
 
Аватар для Hlebychet
 
Регистрация: 21.08.2016
Сообщений: 1
По умолчанию

Не могли бы вы, скажем залить в файл, и отправить его через файлообменник. так будет прощё
Hlebychet вне форума Ответить с цитированием
Старый 21.08.2016, 18:42   #4
alegator74
 
Регистрация: 20.01.2009
Сообщений: 7
По умолчанию Скопировал папку с самим проектом, проблема в файле ZakazSpisok.java

http://www.fayloobmennik.net/6518599

вот по такой табличке кликаю
http://www.fayloobmennik.net/6518622

Последний раз редактировалось alegator74; 21.08.2016 в 18:56. Причина: добавил
alegator74 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли написать веб сервер на Яве для клиента на Андроид,имея под рукой только телефон на том самом андроид? 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