MainAcitivity内でRandom関数を使い、その結果をFragment上のTextViewで出力したいと思っています。
コンパイル時にエラーがないのでそれぞれの構文自体に間違いはないと思うのですが、私のしたいこととは無縁の処理をしようとしているのか、実行したときにTextViewさえも現れてくれません。これでは、Activity上に新しいTextViewを作っていることになるかもしれません。Fragment上のTextViewであることを示すのには何が足りないのでしょうか。
訂正し、MainActivityのコードをすべて載せました。Fragmentを3つ用意しスワイプさせるためAdapterも使用しています。
java
1package com.example.viewpagertest; 2 3import android.net.Uri; 4import android.support.v4.app.Fragment; 5import android.support.v4.app.FragmentActivity; 6import android.support.v4.app.FragmentManager; 7import android.support.v4.app.FragmentStatePagerAdapter; 8import android.support.v4.view.ViewPager; 9import android.support.v7.app.AppCompatActivity; 10import android.os.Bundle; 11import android.util.Log; 12import android.widget.TextView; 13 14import java.util.Random; 15 16 17public class MainActivity extends FragmentActivity { 18 private InfinateSwipeViewPagerAdapter mPagerAdapter; 19 private ViewPager mViewPager; 20 21 @Override 22 protected void onCreate(Bundle savedInstanceState) { 23 super.onCreate(savedInstanceState); 24 setContentView(R.layout.activity_main); 25 26 mPagerAdapter = new InfinateSwipeViewPagerAdapter(getSupportFragmentManager()); 27 mViewPager = (ViewPager) findViewById(R.id.pager); 28 mViewPager.setAdapter(mPagerAdapter); 29 } 30 31 @Override 32 protected void onResume() { 33 super.onResume(); 34 mViewPager.setCurrentItem(1); 35 } 36 37 class InfinateSwipeViewPagerAdapter extends FragmentStatePagerAdapter { 38 public static final int MAX_PAGE_NUM = 10; 39 private static final int OBJECT_NUM = 3; 40 41 public InfinateSwipeViewPagerAdapter(FragmentManager fm) { 42 super(fm); 43 } 44 45 @Override 46 public Fragment getItem(int position) { 47 Fragment fragment = null; 48 Log.d("position", "positionは「" + position + "」"); 49 int diff = (position - (MAX_PAGE_NUM / 2)) % OBJECT_NUM; 50 int index = (0 > diff) ? (OBJECT_NUM + diff) : diff; 51 Log.d("index", "indexは「" + index + "」"); 52 switch (index) { 53 case 0: 54 fragment = new TestFragment1(); 55 break; 56 case 1: 57 fragment = new TestFragment2(); 58 break; 59 case 2: 60 fragment = new TestFragment3(); 61 break; 62 } 63 return fragment; 64 } 65 //以下がRandom関数を使っているところです。 66 public class Ran { 67 public void main(String[] args) { 68 Random r = new Random(); 69 int ran = r.nextInt(MAX_PAGE_NUM); 70 TextView text; 71 text = (TextView) findViewById(R.id.text1); 72 text.setText(Integer.toString(ran)); 73 } 74 } 75 76 @Override 77 public int getCount() { 78 return MAX_PAGE_NUM; 79 } 80 } 81} 82 83 84
回答1件
あなたの回答
tips
プレビュー