質問させていただきます。
MainActivityクラスのコード
Java
1public class MainActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 ViewPager pager = (ViewPager) findViewById(R.id.pager); 9 MyAdapter adapter = new MyAdapter(getSupportFragmentManager()); 10 pager.setAdapter(adapter); 11 12 findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { 13 @Override 14 public void onClick(View view) { 15 //ここに何を書くべきかが分かりません 16 } 17 }); 18 } 19}
activity_main.xmlのコード
XML
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical"> 6 7 <Button 8 android:id="@+id/button" 9 android:layout_width="match_parent" 10 android:layout_height="wrap_content" 11 android:text="Button" /> 12 13 <android.support.v4.view.ViewPager 14 android:id="@+id/pager" 15 android:layout_width="match_parent" 16 android:layout_height="wrap_content"> 17 </android.support.v4.view.ViewPager> 18</LinearLayout>
MyAdapterクラスのコード
Java
1public class MyAdapter extends FragmentPagerAdapter { 2 3 public MyAdapter(FragmentManager fm) { 4 super(fm); 5 } 6 7 @Override 8 public Fragment getItem(int i) { 9 switch (i){ 10 case 0: 11 return new Fragment_Edit(); 12 case 1: 13 return new Fragment_Edit(); 14 default: 15 return new Fragment_Edit(); 16 } 17 } 18 19 @Override 20 public int getCount() { 21 return 3; 22 } 23}
Fragment_Editクラスのコード
Java
1public class Fragment_Edit extends android.support.v4.app.Fragment { 2 3 private EditText edit; 4 5 @Nullable 6 @Override 7 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 8 View v = inflater.inflate(R.layout.fragment, null); 9 10 edit = (EditText) v.findViewById(R.id.editText); 11 12 return v; 13 } 14 15 public void set_empty(){ 16 edit.setText(""); 17 } 18}
fragment.xmlのコード
XML
1<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:orientation="vertical" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent"> 5 6 <EditText 7 android:id="@+id/editText" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:text="Text" /> 11</LinearLayout>
上記のように、MainActivityのViewPagerに、同じFragmentを3つ設置しています。
このときに、MainActivityのボタンを押すことで、2ページ目のEditTextだけ文字を削除したいと考えています。
具体的には、2ページ目のFragmentのset_empty()メソッドだけを呼び出したいです。
どのようにすればよろしいでしょうか?
なお、MainActivityのオンクリックリスナーの中に
Java
1EditText editText = (EditText) findViewById(R.id.editText); 2editText.setText("");
と記述すれば、ボタンを押した際に1ページ目のEditTextの文字は削除できましたが、それ以外のページは削除できませんでした。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/21 10:27