###前提・実現したいこと
Android studioでアプリ開発をしています。
フリックで画面を移動するページを作るために
ViewPagerとPagerAdapterを使用しています。
<実現したいこと>
フリックで画面を移動した後に、
表示中の画面に配置したTextViewに値を設定したいと考えています。
<現状・エラー>
onPageScrollStateChangedの中で
SCROLL_STATE_IDLEの場合に
TextViewのtextを変えようとしています。
しかし、「問題が発生したため、(アプリ名)を終了します。」と表示され
アプリが落ちてしまいます。
###発生している問題・エラーメッセージ
「問題が発生したため、(アプリ名)を終了します。」と表示される
###該当のソースコード01
java
1 private class MyOnPageChangeListener 2 extends ViewPager.SimpleOnPageChangeListener { 3 private static final String TAG = "OnPageChangeListener"; 4 @Override 5 public void onPageScrollStateChanged(int state) { 6 switch (state) { 7 // ページの移動完了時 8 case ViewPager.SCROLL_STATE_IDLE: 9 if (myPosition == 0) { 10 TextView textView = (TextView)layout.findViewById(R.id.text001); 11 textView.setText("bbb"); 12 } 13 break; 14 // ドラッグ終了時 15 case ViewPager.SCROLL_STATE_SETTLING: 16 break; 17 // ドラッグ開始時 18 case ViewPager.SCROLL_STATE_DRAGGING: 19 break; 20 default: 21 break; 22 } 23 } 24
###該当のソースコード02
@Override protected void onCreate(Bundle savedInstanceState) { (中略) super.onCreate(savedInstanceState); setContentView(R.layout.activity_aaa); mViewPager = (ViewPager) findViewById(R.id.viewpager); mViewPager.setOffscreenPageLimit(1); mPagerAdapter = new MyPagerAdapter(); mViewPager.setAdapter(mPagerAdapter); mViewPager.addOnPageChangeListener( new MyOnPageChangeListener() ); }
###ログキャット
05-02 22:09:04.449 30963-30963/***** D/AndroidRuntime: Shutting down VM 05-02 22:09:04.449 30963-30963/***** V/DeployGateUncaughtExceptionHandler: DeployGate caught an exception, trying to send to the service 05-02 22:09:04.462 30963-30963/***** E/AndroidRuntime: FATAL EXCEPTION: main Process: *****, PID: 30963 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at *****.aaaActivity$MyOnPageChangeListener.onPageScrollStateChanged(aaaActivity.java:131) at android.support.v4.view.ViewPager.dispatchOnScrollStateChanged(ViewPager.java:1811) at android.support.v4.view.ViewPager.setScrollState(ViewPager.java:404) at android.support.v4.view.ViewPager.access$000(ViewPager.java:91) at android.support.v4.view.ViewPager$3.run(ViewPager.java:250) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) at android.view.Choreographer.doCallbacks(Choreographer.java:580) at android.view.Choreographer.doFrame(Choreographer.java:549) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
###補足情報(言語/FW/ツール等のバージョンなど)
Android Studio 2.1
回答1件
あなたの回答
tips
プレビュー