質問編集履歴

1

コードを追加しました

2018/04/13 17:05

投稿

hijiri
hijiri

スコア61

test CHANGED
File without changes
test CHANGED
@@ -2,24 +2,244 @@
2
2
 
3
3
 
4
4
 
5
+ MainActivityクラスのコード
6
+
7
+ ```Java
8
+
5
- Main_Activityクラスに、main_activity.xmlをsetContentView()しております。
9
+ public class MainActivity extends AppCompatActivity {
10
+
11
+
12
+
6
-
13
+ @Override
14
+
7
-
15
+ protected void onCreate(Bundle savedInstanceState) {
16
+
8
-
17
+ super.onCreate(savedInstanceState);
18
+
19
+ setContentView(R.layout.activity_main);
20
+
21
+
22
+
23
+ ViewPager pager = (ViewPager) findViewById(R.id.pager);
24
+
9
- このmain_activity.xmlにViewPagerを設置し、MyFragmentPagerAdapterクラスをセットして、「Fragment1」と「Fragment2」の2つのクラスを表示させています。
25
+ MyAdapter adapter = new MyAdapter(getSupportFragmentManager());
10
-
11
-
12
-
26
+
13
- Fragment1のクラス内に
27
+ pager.setAdapter(adapter);
28
+
29
+
30
+
14
-
31
+ findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
32
+
15
-
33
+ @Override
16
-
34
+
17
- public void get_text(){
35
+ public void onClick(View view) {
18
-
36
+
19
- ・・・・・・・・・・・・
37
+ //ここに何を書くべきかが分かりません
38
+
39
+ }
40
+
41
+ });
42
+
43
+ }
20
44
 
21
45
  }
22
46
 
23
-
47
+ ```
48
+
24
-
49
+ activity_main.xmlのコード
50
+
51
+ ```XML
52
+
53
+ <?xml version="1.0" encoding="utf-8"?>
54
+
55
+ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
56
+
57
+ android:layout_width="match_parent"
58
+
59
+ android:layout_height="match_parent"
60
+
61
+ android:orientation="vertical">
62
+
63
+
64
+
65
+ <Button
66
+
67
+ android:id="@+id/button"
68
+
69
+ android:layout_width="match_parent"
70
+
71
+ android:layout_height="wrap_content"
72
+
73
+ android:text="Button" />
74
+
75
+
76
+
77
+ <android.support.v4.view.ViewPager
78
+
79
+ android:id="@+id/pager"
80
+
81
+ android:layout_width="match_parent"
82
+
83
+ android:layout_height="wrap_content">
84
+
85
+ </android.support.v4.view.ViewPager>
86
+
87
+ </LinearLayout>
88
+
89
+ ```
90
+
91
+ MyAdapterクラスのコード
92
+
93
+ ```Java
94
+
95
+ public class MyAdapter extends FragmentPagerAdapter {
96
+
97
+
98
+
99
+ public MyAdapter(FragmentManager fm) {
100
+
101
+ super(fm);
102
+
103
+ }
104
+
105
+
106
+
107
+ @Override
108
+
109
+ public Fragment getItem(int i) {
110
+
111
+ switch (i){
112
+
113
+ case 0:
114
+
115
+ return new Fragment_Edit();
116
+
117
+ case 1:
118
+
119
+ return new Fragment_Edit();
120
+
121
+ default:
122
+
123
+ return new Fragment_Edit();
124
+
125
+ }
126
+
127
+ }
128
+
129
+
130
+
131
+ @Override
132
+
133
+ public int getCount() {
134
+
135
+ return 3;
136
+
137
+ }
138
+
139
+ }
140
+
141
+ ```
142
+
143
+ Fragment_Editクラスのコード
144
+
145
+ ```Java
146
+
147
+ public class Fragment_Edit extends android.support.v4.app.Fragment {
148
+
149
+
150
+
151
+ private EditText edit;
152
+
153
+
154
+
155
+ @Nullable
156
+
157
+ @Override
158
+
159
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
160
+
161
+ View v = inflater.inflate(R.layout.fragment, null);
162
+
163
+
164
+
165
+ edit = (EditText) v.findViewById(R.id.editText);
166
+
167
+
168
+
169
+ return v;
170
+
171
+ }
172
+
173
+
174
+
175
+ public void set_empty(){
176
+
177
+ edit.setText("");
178
+
179
+ }
180
+
181
+ }
182
+
183
+ ```
184
+
185
+ fragment.xmlのコード
186
+
187
+ ```XML
188
+
189
+ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
190
+
191
+ android:orientation="vertical"
192
+
193
+ android:layout_width="match_parent"
194
+
195
+ android:layout_height="match_parent">
196
+
197
+
198
+
199
+ <EditText
200
+
201
+ android:id="@+id/editText"
202
+
203
+ android:layout_width="match_parent"
204
+
205
+ android:layout_height="wrap_content"
206
+
207
+ android:text="Text" />
208
+
209
+ </LinearLayout>
210
+
211
+ ```
212
+
213
+
214
+
25
- といメソッドがある場合、Main_Activityクラスからこメソッド呼び出すにはどうたらよでしょうか?
215
+ 上記のよ、MainActivityのViewPagerに、同じFragment3つ設置ます。
216
+
217
+
218
+
219
+ このときに、MainActivityのボタンを押すことで、2ページ目のEditTextだけ文字を削除したいと考えています。
220
+
221
+ 具体的には、2ページ目のFragmentのset_empty()メソッドだけを呼び出したいです。
222
+
223
+
224
+
225
+ どのようにすればよろしいでしょうか?
226
+
227
+
228
+
229
+ なお、MainActivityのオンクリックリスナーの中に
230
+
231
+
232
+
233
+ ```Java
234
+
235
+ EditText editText = (EditText) findViewById(R.id.editText);
236
+
237
+ editText.setText("");
238
+
239
+ ```
240
+
241
+ と記述すれば、ボタンを押した際に1ページ目のEditTextの文字は削除できましたが、それ以外のページは削除できませんでした。
242
+
243
+
244
+
245
+ どうぞよろしくお願いいたします。