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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
bondardenis2
0 / 0 / 1
Регистрация: 22.02.2013
Сообщений: 52
#1

Вывод разного текста по клику на разные кнопки - Android

11.02.2014, 21:41. Просмотров 1063. Ответов 5
Метки нет (Все метки)

Здравствуйте! Подскажите, пожалуйста, как реализовать вывод текста при определенном значении кнопки?
Допустим, мне необходимо реализовать самое просто приложение: "Расписание студента"

у меня есть дни: пн вт ср чт пт
и неделя: первая и вторая
если первая, то одно расписание на каждый день, если вторая, то другое расписание

я начал реализовывать так, через textView и OnClick

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
package raspisanie.students;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        weekSelect = (TextView) findViewById(R.id.weekDay);
        dayofselect = (TextView) findViewById(R.id.wweekselected);
    }
//weeks
Button week1;
Button week2;
//days
Button day1;
Button day2;
Button day3;
Button day4;
Button day5;
 
//text select day and week
TextView dayofselect;
TextView weekSelect;
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    // select week1
    public void OnClickW1(View v){
        weekSelect.setText("1");    
    }
    
    // select week2
    public void OnClickW2(View v){
        weekSelect.setText("2");    
    }
    
    
 // select day1
    public void OnClickD1(View v){
        dayofselect.setText("Пн");      
    }
    // select day2
    public void OnClickD2(View v){
        dayofselect.setText("Вт");      
    }
    // select day3
    public void OnClickD3(View v){
        dayofselect.setText("Ср");      
    }
    // select day4
    public void OnClickD4(View v){
        dayofselect.setText("Чт");      
    }
    // select day5
    public void OnClickD5(View v){
        dayofselect.setText("Пт");      
    }
    
    
}
activitymain.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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:layout_above="@+id/button1"
        android:layout_toLeftOf="@+id/button5"
        android:onClick="OnClickD2"
        android:text="@string/NumberDay2" />
 
    <Button
        android:id="@+id/button5"
        android:layout_width="40dp"
        android:layout_height="35dp"
        android:layout_alignBaseline="@+id/button6"
        android:layout_alignBottom="@+id/button6"
        android:layout_centerHorizontal="true"
        android:onClick="OnClickD3"
        android:text="@string/NumberDay3" />
 
    <Button
        android:id="@+id/button3"
        android:layout_width="40dp"
        android:layout_height="35dp"
        android:layout_above="@+id/button1"
        android:layout_toLeftOf="@+id/button4"
        android:onClick="OnClickD1"
        android:text="@string/NumberDay1" />
 
    <Button
        android:id="@+id/button6"
        android:layout_width="40dp"
        android:layout_height="35dp"
        android:layout_above="@+id/button2"
        android:layout_toRightOf="@+id/button5"
        android:onClick="OnClickD4"
        android:text="@string/NumberDay4" />
 
    <Button
        android:id="@+id/button7"
        android:layout_width="40dp"
        android:layout_height="35dp"
        android:layout_above="@+id/button2"
        android:layout_toRightOf="@+id/button6"
        android:onClick="OnClickD5"
        android:text="@string/NumberDay5" />
 
    
    
    
    <TextView
        android:id="@+id/selweeks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button4"
        android:text="@string/Weeks"
        android:textSize="25sp" />
 
    <TextView
        android:id="@+id/Days"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button5"
        android:layout_below="@+id/selweeks"
        android:layout_marginTop="17dp"
        android:text="@string/DaysofWeek"
        android:textSize="25sp" />
    
    
    
    
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:layout_alignRight="@+id/button7"
        android:layout_below="@+id/button4"
        android:layout_marginRight="16dp"
        android:onClick="OnClickW2"
        android:text="@string/NumberWeek2" />
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="15dp"
        android:layout_toLeftOf="@+id/button2"
        android:onClick="OnClickW1"
        android:text="@string/NumberWeek1" />
 
     <TextView
         android:id="@+id/wweekselected"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignBaseline="@+id/selweeks"
         android:layout_alignBottom="@+id/selweeks"
         android:layout_alignRight="@+id/button7"
         android:text="@string/weekSelect"
         android:textSize="25sp" />
 
     <TextView
         android:id="@+id/weekDay"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignBaseline="@+id/Days"
         android:layout_alignBottom="@+id/Days"
         android:layout_alignLeft="@+id/wweekselected"
         android:text="@string/DaySelect"
         android:textSize="25sp" />
 
</RelativeLayout>
Подскажите, пожалуйста, как реализовать дальше вывод самого расписания и поправьте меня, если в чем то не ошибаюсь, т.к. новичок в этом
Миниатюры
Вывод разного текста по клику на разные кнопки  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 21:41     Вывод разного текста по клику на разные кнопки
Посмотрите здесь:

Условие открытия WebView при нажатии на разные кнопки Android
Android Вывод текста. Андройд
Android Форматирование текста и действие по нажатию кнопки назад
Вывод текста Android
Вывод большого текста и запоминание Android
Тень текста нажатой кнопки Android
Как лучше организовать расположение компонентов на экране? (картинка и 3 кнопки на разные экраны) Android
Как лучше реализовать вывод объёмного текста?! Android
Textview. Изменение текста по нажатию кнопки не происходит Android
Вывод в диалоговое окно текста и переменной Android
Вывод рандомного текста Android
Вывод изображения после нажатия кнопки Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
12.02.2014, 08:32     Вывод разного текста по клику на разные кнопки #2
Цитата Сообщение от bondardenis2 Посмотреть сообщение
как реализовать вывод текста при определенном значении кнопки?
Стремно, лучше привяжи к календарю. ненадо никахих кнопок
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
12.02.2014, 10:47     Вывод разного текста по клику на разные кнопки #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от bondardenis2 Посмотреть сообщение
Подскажите, пожалуйста, как реализовать дальше вывод самого расписания и поправьте меня, если в чем то не ошибаюсь, т.к. новичок в этом
Всё очень просто:
1) Заводите двумерный строковый массив размером 2 х 5 внутри которого у вас будут храниться расписания на две недели для каждого дня.
2) Заводите переменную week хранящую номер недели (0 - первая неделя, 1 - вторая неделя).
3) Для кнопок "Неделя 1" и "Неделя 2" создаете обработчик нажатия, который будет записывать в переменную week 1 или 0 в зависимости от того какую кнопку нажали.
4) Для каждой из пяти кнопок нужно внутри layout файла назначит свой tag:
XML
1
2
3
4
5
6
7
8
9
10
    <Button
        android:tag="1"
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:layout_alignRight="@+id/button7"
        android:layout_below="@+id/button4"
        android:layout_marginRight="16dp"
        android:onClick="OnClickW2"
        android:text="@string/NumberWeek2" />
Для кнопки понедельника он будет 0, для вторника - 1, для среды - 2 итд. Для кнопок соответствующим дням недели нужно назначить один и тот же обработчик нажатия. Внутри обработчика нужно вытащить тэг у кнопки которую нажали, потом преобразовать его в число. Это число и значение переменно week будут индексами строкового массива, и зная их можно вытащить нужное расписание
bondardenis2
0 / 0 / 1
Регистрация: 22.02.2013
Сообщений: 52
12.02.2014, 12:23  [ТС]     Вывод разного текста по клику на разные кнопки #4
Цитата Сообщение от angryrobot Посмотреть сообщение
Всё очень просто:
1) Заводите двумерный строковый массив размером 2 х 5 внутри которого у вас будут храниться расписания на две недели для каждого дня.
2) Заводите переменную week хранящую номер недели (0 - первая неделя, 1 - вторая неделя).
3) Для кнопок "Неделя 1" и "Неделя 2" создаете обработчик нажатия, который будет записывать в переменную week 1 или 0 в зависимости от того какую кнопку нажали.
4) Для каждой из пяти кнопок нужно внутри layout файла назначит свой tag:
XML
1
2
3
4
5
6
7
8
9
10
    <Button
        android:tag="1"
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:layout_alignRight="@+id/button7"
        android:layout_below="@+id/button4"
        android:layout_marginRight="16dp"
        android:onClick="OnClickW2"
        android:text="@string/NumberWeek2" />
Для кнопки понедельника он будет 0, для вторника - 1, для среды - 2 итд. Для кнопок соответствующим дням недели нужно назначить один и тот же обработчик нажатия. Внутри обработчика нужно вытащить тэг у кнопки которую нажали, потом преобразовать его в число. Это число и значение переменно week будут индексами строкового массива, и зная их можно вытащить нужное расписание
Подскажите, пожалуйста, этот массив создавать отдельном классе ? файле MainActivity.java?
И я не совсем понял про массив 2*5
т.е. в первой строке из 5 дней будет храниться расписание и во второй строке тоже будет храниться расписание, так?
Но в одном дне может быть несколько пар, а в одну ячейку массива можно поместить одно значение
Java
1
2
3
4
5
6
class rasp{
public static void main(String args[]) {
int rasp_mass[][]= {
    {"Автоматизация тех процессов"},
    {},
    ...
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
12.02.2014, 12:29     Вывод разного текста по клику на разные кнопки #5
загугли двумерные масивы, и хорошо подумай что тебе тут понаписали, включи свой моцк
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
12.02.2014, 12:51     Вывод разного текста по клику на разные кнопки #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от bondardenis2 Посмотреть сообщение
Подскажите, пожалуйста, этот массив создавать отдельном классе ? файле MainActivity.java?
В отдельном классе не надо, прям в файле MainActivity.java его разместите
Цитата Сообщение от bondardenis2 Посмотреть сообщение
И я не совсем понял про массив 2*5
т.е. в первой строке из 5 дней будет храниться расписание и во второй строке тоже будет храниться расписание, так?
Да всё верно, выглядит он примерно так:
Java
1
2
3
4
5
6
7
        String timeTable[][] = {{"Пн. Неделя1","Вт. Неделя1","Срд. Неделя1","Чт Неделя1","Пт. Неделя1"},
                        {"Пн. Неделя2","Вт. Неделя2","Срд. Неделя2","Чт Неделя2","Пт. Неделя2"}};
        int day = 1; //Вторник
        int week = 1;// Вторая неделя
        
        //Напечатает Вт. Неделя2
        System.out.println(timeTable[week][day]);
Цитата Сообщение от bondardenis2 Посмотреть сообщение
Но в одном дне может быть несколько пар, а в одну ячейку массива можно поместить одно значение
Название каждой пары сделайте в виде строковой константы, таким образом вы сможете сложить нужные строки и получить название всех пар для одного дня. Это вы и поместите в массив с расписанием.
Yandex
Объявления
12.02.2014, 12:51     Вывод разного текста по клику на разные кнопки
Ответ Создать тему
Опции темы

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