私は、オートスライド画像に私のプロジェクトで、次のライブラリを使用しています。それは活動の内部で罰金を動作しますが、それはフラグメントに来るとき、コンテキストは次のように渡されたときには、NULLポインタ例外がスローされますgetContext();
かgetActivity();
代わりにthis;
。私は今それで立ち往生。助けてください。
ライブラリ名:リンクするライブラリ
私のコードの中フラグメント:
SliderView sliderView = view.findViewById(R.id.ImageSlider);
SliderImageAdapter adapter = new SliderImageAdapter(getContext());
adapter.setCount(5);
sliderView.setSliderAdapter(adapter);
sliderView.setIndicatorAnimation(IndicatorAnimations.SLIDE); //set indicator animation by using SliderLayout.IndicatorAnimations. :WORM or THIN_WORM or COLOR or DROP or FILL or NONE or SCALE or SCALE_DOWN or SLIDE and SWAP!!
sliderView.setSliderTransformAnimation(SliderAnimations.CUBEINROTATIONTRANSFORMATION);
sliderView.setAutoCycleDirection(SliderView.AUTO_CYCLE_DIRECTION_BACK_AND_FORTH);
sliderView.setIndicatorSelectedColor(Color.WHITE);
sliderView.setIndicatorUnselectedColor(Color.GRAY);
sliderView.startAutoCycle();
マイLogcat:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.coderedinnovations.allioservices, PID: 7955
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.smarteist.autoimageslider.SliderView.setSliderAdapter(com.smarteist.autoimageslider.SliderViewAdapter)' on a null object reference
at com.coderedinnovations.allioservices.AllioMain.HomeFragment.onCreateView(HomeFragment.java:53)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2629)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2722)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1188)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2625)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1433)
at android.app.Activity.performStart(Activity.java:7987)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3521)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:226)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:206)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:178)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:102)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2222)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:228)
at android.app.ActivityThread.main(ActivityThread.java:7772)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)
レイアウトコード:
<androidx.cardview.widget.CardView
app:cardCornerRadius="10dp"
android:layout_margin="14dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.smarteist.autoimageslider.SliderView
android:id="@+id/imageSlider"
android:layout_width="match_parent"
android:layout_height="200dp"
app:sliderAnimationDuration="600"
app:sliderAutoCycleDirection="back_and_forth"
app:sliderAutoCycleEnabled="true"
app:sliderIndicatorAnimationDuration="600"
app:sliderIndicatorGravity="center_horizontal|bottom"
app:sliderIndicatorMargin="15dp"
app:sliderIndicatorOrientation="horizontal"
app:sliderIndicatorPadding="3dp"
app:sliderIndicatorRadius="0.5dp"
app:sliderIndicatorSelectedColor="#5A5A5A"
app:sliderIndicatorUnselectedColor="#FFF"
app:sliderScrollTimeInSec="1"
app:sliderStartAutoCycle="true" />
</androidx.cardview.widget.CardView>
私が持っていたというのが私のアダプタと他の活動のためにその作業に問題はありません。
logcatのエラーログを見ることなく、問題がここにあるものを理解することは困難です。しかし、私はあなたが問題を自分で調べることができるように、私はいくつかの提案を置く必要があると思いました。
あなたはからアダプタを初期化する検討するかもしれないFragment
次のように。
SliderImageAdapter adapter = new SliderImageAdapter(getActivity());
あなたが使用していることをレイアウトがある場合も、確認してくださいImageSlider
属性を。あなたが膨張するようにしようとしていることをあなたのフラグメントのレイアウトでそのレイアウトIDをお持ちでない場合、それは同様にNULLポインタの例外を持っている必要があります。
アダプターは、罰金の私見を探しています。
更新
あなたがあなたのために使用されていることをlogcatから、レイアウトのように見えFragment
ていないImageSlider
ので、それが初期化できませんでしたsliderView
。
レイアウトIDがあるようにあなたが投稿レイアウトから、そうですimageSlider
、ではありませんImageSlider
。レイアウトIDは大文字と小文字が区別されます。
したがって、あなたは、次のように変更され、次の行を持つ必要があります。
view.findViewById(R.id.imageSlider);