デバイス内のローカルデータベースを用いてSwipeViewを作っています。
ViewPagerAdapterにコンストラクタを用意して実装したいですけれど、
コンストラクタからエラーが起きているそうです。
特に問題はないと思ったので、今の実装の問題がよく分かりません。
まだ初心者ですので、教えてくいただければありがたいと思います。
一応、SwipeViewの関するコードは全部書いておきます。
お願いします。
**<ViewPagerAdapter側>** public class StudyAdapter extends PagerAdapter { private Context mContext; private ArrayList<Card> mArray; public StudyAdapter (Context context) { mContext = context; mArray = new ArrayList<Card>(); } /** * リストにアイテムを追加する. * @param * @param */ public void add(Card tmp) { mArray.add(tmp); } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { Card tmp = mArray.get(position); TextView txtEng = new TextView(mContext); txtEng.setText(tmp.getEng()); txtEng.setTextSize(30); txtEng.setGravity(Gravity.CENTER); container.addView(txtEng); return txtEng; } @Override public int getCount() { return mArray.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == (TextView) object; } // public Card getItem(int position) { // return mArray.get(position); // } } **<Activity側>** public class StudyActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_study); //ローカルデータベース CardSQLiteOpenHelper helper = new CardSQLiteOpenHelper(this); ArrayList<Card> ary = new ArrayList<Card>(); helper.getAllCard(ary); StudyAdapter studyAdapter = new StudyAdapter(this); for ( Card tmp : ary ) { studyAdapter.add(tmp); } ViewPager viewPager = (ViewPager)findViewById(R.id.view_pager); viewPager.setAdapter(studyAdapter); } }
**<起きたエラー>** --------- beginning of crash 2018-12-11 09:37:02.588 2453-2453/jp.ac.jec.cm0207.projecttest E/AndroidRuntime: FATAL EXCEPTION: main Process: jp.ac.jec.cm0207.projecttest, PID: 2453 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{jp.ac.jec.cm0207.projecttest/jp.ac.jec.cm0207.projecttest.StudyAdapter}: java.lang.InstantiationException: java.lang.Class<jp.ac.jec.cm0207.projecttest.StudyAdapter> has no zero argument constructor at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2548) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) Caused by: java.lang.InstantiationException: java.lang.Class<jp.ac.jec.cm0207.projecttest.StudyAdapter> has no zero argument constructor at java.lang.Class.newInstance(Native Method) at android.app.Instrumentation.newActivity(Instrumentation.java:1078) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2538) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
回答1件
あなたの回答
tips
プレビュー