teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

記述ミスがあったので修正しました

2020/10/29 03:41

投稿

default-nuko
default-nuko

スコア3

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  1つボタンを作って試した際はうまくいったのですが、2つ目のボタン(buttonと書かれたボタン)を配置して試したところ、1つ目のボタンの内容が変更されてしまいました。このまま続けると、20個配置してもすべて1つ目のボタンが変更されてしまうと思い、今回こちらの掲示板に質問することに決めました。
9
9
  まずは、現状を知ってもらうために各コードとレイアウトの画像を貼っておきます。
10
10
  ----------------メイン画面(時間割表の画面)の処理------------------------
11
- `,`Kotlin
11
+ ```Kotlin
12
12
 
13
13
  package com.example.timeschedule
14
14
 

2

markdown記述を利用してコードを記述しました

2020/10/29 03:41

投稿

default-nuko
default-nuko

スコア3

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,8 @@
8
8
  1つボタンを作って試した際はうまくいったのですが、2つ目のボタン(buttonと書かれたボタン)を配置して試したところ、1つ目のボタンの内容が変更されてしまいました。このまま続けると、20個配置してもすべて1つ目のボタンが変更されてしまうと思い、今回こちらの掲示板に質問することに決めました。
9
9
  まずは、現状を知ってもらうために各コードとレイアウトの画像を貼っておきます。
10
10
  ----------------メイン画面(時間割表の画面)の処理------------------------
11
+ `,`Kotlin
12
+
11
13
  package com.example.timeschedule
12
14
 
13
15
  import android.app.Activity
@@ -60,9 +62,11 @@
60
62
  }
61
63
  }
62
64
  }
63
- -----------------------------------------------------------------------
65
+ ```
64
66
 
65
67
  ----------------科目登録の画面側の処理----------------------------------
68
+ ```Kotlin
69
+
66
70
  package com.example.timeschedule
67
71
 
68
72
  import android.app.Activity
@@ -113,10 +117,10 @@
113
117
  }
114
118
 
115
119
  }
116
- -----------------------------------------------------------------------
120
+ ```
117
121
 
118
-
119
122
  ----------------科目登録の画面用のデータセット--------------------------
123
+ ```Kotlin
120
124
  package com.example.timeschedule
121
125
 
122
126
  import android.content.Context
@@ -138,6 +142,8 @@
138
142
  set(value) = prefs.edit().putString("ROOM", value).apply()
139
143
  }
140
144
 
145
+ ```
146
+
141
147
  -----------------------------------------------------------------------
142
148
  ![イメージ説明](a3cd7f80c4f760a5049c57d9619d9d2c.png)
143
149
  //時間割表の画面

1

コードの部分を直接書き込みました

2020/10/29 03:40

投稿

default-nuko
default-nuko

スコア3

title CHANGED
File without changes
body CHANGED
@@ -6,14 +6,139 @@
6
6
  画像では、2つしかボタンが配置されていませんが、各曜日に4つずつの合計20個のボタンを配置する予定です。
7
7
 
8
8
  1つボタンを作って試した際はうまくいったのですが、2つ目のボタン(buttonと書かれたボタン)を配置して試したところ、1つ目のボタンの内容が変更されてしまいました。このまま続けると、20個配置してもすべて1つ目のボタンが変更されてしまうと思い、今回こちらの掲示板に質問することに決めました。
9
- まずは、現状を知ってもらうために画像を貼っておきます。
9
+ まずは、現状を知ってもらうために各コードとレイアウトの画像を貼っておきます。
10
+ ----------------メイン画面(時間割表の画面)の処理------------------------
11
+ package com.example.timeschedule
10
12
 
13
+ import android.app.Activity
14
+ import android.content.Intent
15
+ import androidx.appcompat.app.AppCompatActivity
16
+ import android.os.Bundle
17
+ import android.view.View
11
- ![![![イメージ](4fbbd6da108b2be39e4bf31af3f34847.png)
18
+ import kotlinx.android.synthetic.main.activity_main.*
19
+
20
+ class MainActivity : AppCompatActivity() {
21
+
22
+ companion object{
23
+ const val REQUEST_CODE = 1000//REQUEST_CODEの値はいくつでもよい。
24
+ // onActivityResult()に戻ってきたときに、どのActivityから戻ってきたのかを判別する。
12
- //メイン画面(時間割表画面)の処理
25
+ // 今回ように遷移先が1つしかない場合、値は何でもよい。
26
+ }
27
+
13
- ![![イメージ説明](6b62f0930e82047ed8475aaef2384b75.png)
28
+ override fun onCreate(savedInstanceState: Bundle?) {
29
+
30
+
31
+ super.onCreate(savedInstanceState)
32
+ setContentView(R.layout.activity_main)
33
+
34
+ mon_12button.setOnClickListener {
35
+ val intent = Intent(this, addSubject::class.java)
36
+ startActivityForResult(intent, REQUEST_CODE)
37
+
38
+ }
39
+ mon_12button2.setOnClickListener {
40
+ intent = Intent(this,addSubject::class.java)
41
+ startActivityForResult(intent, REQUEST_CODE)
42
+ }
43
+
44
+ }
45
+
46
+ override fun onStart() {
47
+ super.onStart()
48
+ val lesson = LessonData(this)//mainで読み込めばアプリを閉じて、再び開いても保存されたまま?
49
+ val name = lesson.name
50
+ mon_12button.text = name
51
+ }
52
+
14
- //科目登録の画面側の処理
53
+ //結果を受け取るメソッド
54
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
15
- ![イメージ説明](843458dcfb0e7edf917984f9a8a7c3a1.png)
55
+ super.onActivityResult(requestCode, resultCode, data)
56
+
57
+ if(requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK){
16
- //科目登録の画面用のデーセッ
58
+ //RESURT_OKで帰ってきたとき、ボンのテキスを更新
59
+ mon_12button.text = data?.getStringExtra("TEXT_KEY")
60
+ }
61
+ }
62
+ }
63
+ -----------------------------------------------------------------------
64
+
65
+ ----------------科目登録の画面側の処理----------------------------------
66
+ package com.example.timeschedule
67
+
68
+ import android.app.Activity
69
+ import android.content.Intent
70
+ import androidx.appcompat.app.AppCompatActivity
71
+ import android.os.Bundle
72
+ import androidx.core.content.edit
73
+ import androidx.preference.PreferenceManager
74
+ import kotlinx.android.synthetic.main.activity_add_subject.*
75
+ import java.io.Serializable
76
+
77
+
78
+ class addSubject : AppCompatActivity() {
79
+
80
+ override fun onCreate(savedInstanceState: Bundle?) {
81
+ super.onCreate(savedInstanceState)
82
+
83
+ setContentView(R.layout.activity_add_subject)
84
+ backButton.setOnClickListener {
85
+ finish()
86
+ }
87
+
88
+ addButton.setOnClickListener {
89
+ val intent = Intent()
90
+ intent.putExtra("TEXT_KEY",subjectName.text.toString())//戻す情報をintentにセット
91
+ setResult(Activity.RESULT_OK,intent)//結果のコードとibtentをセット
92
+
93
+ val lesson = LessonData(this)//登録ボタンを押した際、内容をLessonDataに書き込む
94
+ lesson.name = subjectName.text.toString()
95
+ lesson.teacher = responsibleTeacher.text.toString()
96
+ lesson.room = lectureRoom.text.toString()
97
+ finish()
98
+
99
+ }
100
+
101
+ }
102
+
103
+ override fun onStart() {
104
+ super.onStart()
105
+ val lesson = LessonData(this)//前回保存したデータを読み込む
106
+ val name = lesson.name
107
+ val teacher = lesson.teacher
108
+ val room = lesson.room
109
+ subjectName.setText(name)
110
+ lectureRoom.setText(room)
111
+ responsibleTeacher.setText(teacher)
112
+
113
+ }
114
+
115
+ }
116
+ -----------------------------------------------------------------------
117
+
118
+
119
+ ----------------科目登録の画面用のデータセット--------------------------
120
+ package com.example.timeschedule
121
+
122
+ import android.content.Context
123
+ import androidx.preference.PreferenceManager
124
+
125
+ class LessonData(context: Context) {
126
+ private val prefs = PreferenceManager.getDefaultSharedPreferences(context)
127
+
128
+ var name: String?//科目名
129
+ get() = prefs.getString("NAME", null)
130
+ set(value) = prefs.edit().putString("NAME", value).apply()
131
+
132
+ var teacher: String?//教師名
133
+ get() = prefs.getString("TEACHER", null)
134
+ set(value) = prefs.edit().putString("TEACHER", value).apply()
135
+
136
+ var room: String?//部屋番号
137
+ get() = prefs.getString("ROOM", null)
138
+ set(value) = prefs.edit().putString("ROOM", value).apply()
139
+ }
140
+
141
+ -----------------------------------------------------------------------
17
142
  ![イメージ説明](a3cd7f80c4f760a5049c57d9619d9d2c.png)
18
143
  //時間割表の画面
19
144
  ![イメージ説明](4e21bebcd4581edb906af8592428cb73.png)