前提・実現したいこと
Android studioでアプリ開発をしています。
フリックで画面を移動するページを作るために
ViewPagerとPagerAdapterを使用しています。
<実現したいこと>
フリックで画面を移動した後に、
表示中の画面に配置したTextViewに値を設定したいと考えています。
<現状・エラー>
onPageScrollStateChangedの中で
SCROLL_STATE_IDLEの場合に
TextViewのtextを変えようとしています。
しかし、「問題が発生したため、(アプリ名)を終了します。」と表示され
アプリが落ちてしまいます。
発生している問題・エラーメッセージ
「問題が発生したため、(アプリ名)を終了します。」と表示される
該当のソースコード01
private class MyOnPageChangeListener
extends ViewPager.SimpleOnPageChangeListener {
private static final String TAG = "OnPageChangeListener";
@Override
public void onPageScrollStateChanged(int state) {
switch (state) {
// ページの移動完了時
case ViewPager.SCROLL_STATE_IDLE:
if (myPosition == 0) {
TextView textView = (TextView)layout.findViewById(R.id.text001);
textView.setText("bbb");
}
break;
// ドラッグ終了時
case ViewPager.SCROLL_STATE_SETTLING:
break;
// ドラッグ開始時
case ViewPager.SCROLL_STATE_DRAGGING:
break;
default:
break;
}
}
該当のソースコード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
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
変数layoutは何者でしょうか。
findViewByIdをした結果該当するViewが存在しないため、textViewがnullになり、この変数のメソッドを使用しようとした結果NullPointerExceptionが発生しています。
引数のidやlayoutが正しいかを確認する事で解決につながると思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
yona
2016/05/02 22:05
ログキャットのログを追記してください。また、ViewPagerにListnerを追加している箇所のコードも追記してください。
nnnnn
2016/05/02 22:16 編集
ありがとうございます!
追記させていただきました!