質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

0回答

2816閲覧

ViewPagerでの画面遷移時に、遷移先に値を渡して表示させたい

yakiniku

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/09/15 16:38

編集2022/01/12 10:55

###前提・実現したいこと
android初心者です。
画面上にタブを2つ用意し、ViewPagerを利用してスワイプでビューの切り替えが可能な状態にしています。
ここでやりたいことは以下の2つです。

  1. タブ1からタブ2に切り替えるとき、スワイプで切り替えるのではなく、タブ1のビューに設置しているボタンを押したときにも切り替えができるようにしたい。
  2. 上記の1.を実行するときに、Tab2Fragmentに適当な値を渡したい。(受け取った値をタブ2のテキストビューに表示させたい)

どちらもTab1Fragment#onclickに実装させたいのですが、良い方法が思いつきません。アドバイスをいただけないでしょうか。

###該当のソースコード
MainActivity.java

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 viewPager = (ViewPager) findViewById(R.id.viewPager); 9 viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), 10 MainActivity.this)); 11 12 TabLayout tabLayout = (TabLayout)findViewById(R.id.tab_layout); 13 tabLayout.setupWithViewPager(viewPager); 14 viewPager.setCurrentItem(1); 15 } 16}

activity_main.xml

activity_main.xml

1<?xml version="1.0" encoding="utf-8"?> 2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context="com.example.a1.quizhtml.MainActivity" 11 android:background="#d1e7e2" 12 android:id="@+id/main"> 13 14 <android.support.design.widget.TabLayout 15 android:layout_width="match_parent" 16 android:layout_height="wrap_content" 17 android:id="@+id/tab_layout" 18 android:layout_alignParentTop="true" 19 android:layout_alignParentLeft="true" 20 android:layout_alignParentStart="true" /> 21 22 <android.support.v4.view.ViewPager android:id="@+id/viewPager" 23 android:layout_width="match_parent" 24 android:layout_height="match_parent" /> 25 26 27</RelativeLayout>

Tab1Fragment.java

Tab1Fragment.java

1public class Tab1Fragment extends Fragment { 2 3 @Override 4 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 5 6 View view = inflater.inflate(R.layout.tab1, container, false); 7 View.OnClickListener tab1ButtonClickListener = new View.OnClickListener() { 8 @Override 9 public void onClick(View v) { 10 // 悩みの種 11 12 } 13 }; 14 view.findViewById(R.id.tab1Button).setOnClickListener(tab1ButtonClickListener); 15 16 return view; 17 } 18 19}

tab1.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/tab1"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/tab1Button" android:layout_gravity="center_vertical" /> </LinearLayout>

Tab2Fragment.java

public class Tab2Fragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.tab2, container, false); return view; } }

tab2.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/tab2"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Large Text" android:id="@+id/tab2Text" android:nestedScrollingEnabled="true" android:layout_gravity="center_vertical" /> </LinearLayout>

ViewPagerAdapter.java

public class ViewPagerAdapter extends FragmentPagerAdapter { final int PAGE_COUNT = 2; private String tabTitles[] = new String[]{"Tab1", "Tab2"}; private Context context; public ViewPagerAdapter(FragmentManager fm, Context context) { super(fm); this.context = context; } @Override public int getCount() { return PAGE_COUNT; } @Override public Fragment getItem(int position) { switch (position) { case 0: return new Tab1Fragment(); case 1: return new Tab2Fragment(); default: break; } return null; } @Override public CharSequence getPageTitle(int position) { return tabTitles[position]; } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問