質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

4571閲覧

アンドロイドスタジオ、コンストラクタのエラー

kjc9802

総合スコア7

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/12/11 00:46

編集2018/12/11 00:53

デバイス内のローカルデータベースを用いて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) 

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/12/11 00:47

「初心者アイコン」ご利用ください。「初心者」自体は質問要件ではありませんので
kjc9802

2018/12/11 00:50

初心者アイコンってどこから使えますか?
m.ts10806

2018/12/11 00:52

質問編集画面の質問タイトル入力の左側にあるはずです。クリックでon/offが切り替わります
kjc9802

2018/12/11 00:54

ありがとうございます
guest

回答1

0

ベストアンサー

以下のエラーメッセージをそのまま解釈するなら

java.lang.Class<jp.ac.jec.cm0207.projecttest.StudyAdapter> has no zero argument constructor

StudyAdapter クラスに引数なしのコンストラクタの実装が必要ということのようです。

ただ、なんでそんな実行時エラーが出るのかは、掲載されているソースからはわかりません。
ここに掲載されている以外の部分に問題があるのではないかと思います。
理由はエラーのスタックトレースの出力に onCreate がないからです。

onCreate で StudyAdapter の new をしていますが、そこでエラーが起きているのであればエラーのスタックトレースに onCreate が出てくると思います。
出てこないということはそこではないということです。
他に StudyAdapter を new している個所は見当たりませんから、ここに掲載された以外の場所で問題が起きていると想像できます。

投稿2019/01/07 12:33

toydev

総合スコア297

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kjc9802

2019/01/10 03:07

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問