Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
bondardenis2
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 52
1

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

11.02.2014, 21:41. Просмотров 1240. Ответов 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>
Подскажите, пожалуйста, как реализовать дальше вывод самого расписания и поправьте меня, если в чем то не ошибаюсь, т.к. новичок в этом
0
Миниатюры
Вывод разного текста по клику на разные кнопки  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 21:41
Ответы с готовыми решениями:

Изменение размера текста кнопки вместе с размером самой кнопки?
Есть 100500 кнопок, нужно имитировать их нажатие. делаю это через селекторы...

Вывод разного текста
Привет ребята помогите реализовать следующее. Мне нужно выводить определенный...

Смена цвета текста кнопки по клику
Доброго времени суток. Требуется сделать кнопку которая при каждом клике...

Перенос текста из одного листа в другой по клику кнопки
Всем привет. Прошу прощения, что создаю топик, ибо реально не понимаю, как и...

вывод select`a на экран по клику кнопки
здравствуйте! Подскажите пожалуйста как правильно реализовать такую задачу....

5
kirawa
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
12.02.2014, 08:32 2
Цитата Сообщение от bondardenis2 Посмотреть сообщение
как реализовать вывод текста при определенном значении кнопки?
Стремно, лучше привяжи к календарю. ненадо никахих кнопок
1
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
12.02.2014, 10:47 3
Лучший ответ Сообщение было отмечено bondardenis2 как решение

Решение

Цитата Сообщение от 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 будут индексами строкового массива, и зная их можно вытащить нужное расписание
1
bondardenis2
0 / 0 / 0
Регистрация: 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[][]= {
    {"Автоматизация тех процессов"},
    {},
    ...
0
kirawa
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
12.02.2014, 12:29 5
загугли двумерные масивы, и хорошо подумай что тебе тут понаписали, включи свой моцк
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
12.02.2014, 12:51 6
Лучший ответ Сообщение было отмечено bondardenis2 как решение

Решение

Цитата Сообщение от 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 Посмотреть сообщение
Но в одном дне может быть несколько пар, а в одну ячейку массива можно поместить одно значение
Название каждой пары сделайте в виде строковой константы, таким образом вы сможете сложить нужные строки и получить название всех пар для одного дня. Это вы и поместите в массив с расписанием.
1
12.02.2014, 12:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 12:51

Как сделать вывод разного текста при разных значениях числа
Здравствуйте, я хочу узнать как можно сделать вывод раного текста при разных...

Вывод текста по клику мыши в определенной области (Си)
В курсовой нужно вывести определенную информацию на экран по клику мыши в...

Вывод текста в текстовое поле по двойному клику
По двойному клику на текстовом поле выводить туда текст Недавно начал...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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