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

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

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

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1529閲覧

KotlinでFragment上にListViewを表示する方法

kotlin

総合スコア16

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2019/05/08 04:34

編集2019/05/08 04:40

TabLayout上のFragmentにListViewを乗せたいと思っています。

MainActivity上でListViewを表示することはできたのですがTabLayout上のFragmentにListViewを乗せると "listView must not be null" というエラーが出てしまい落ちてしまうのですが、どの部分が間違っているのかわかりません。
どなたか詳しい方がいましたら教えて頂けないでしょうか、よろしくお願いします。

Kotlin

1//MainActivity.kt 2class MainActivity : AppCompatActivity() { 3 4 override fun onCreate(savedInstanceState: Bundle?) { 5 super.onCreate(savedInstanceState) 6 setContentView(R.layout.activity_main) 7 8 val fragmentAdapter = MyPagerAdapter(supportFragmentManager) 9 viewpager_main.adapter = fragmentAdapter 10 tabs_main.setupWithViewPager(viewpager_main) 11 } 12} 13 14class MyPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { 15 override fun getItem(position: Int): Fragment { 16 return when (position) { 17 0 -> Fragment1() 18 else -> { 19 return Fragment1() 20 } 21 } 22 } 23 24 override fun getCount(): Int { 25 return 1 26 } 27 28 override fun getPageTitle(position: Int): CharSequence { 29 return when (position) { 30 0 -> "First" 31 else -> { 32 return "" 33 } 34 } 35 } 36} 37 38class Fragment1 : Fragment() { 39 40 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { 41 super.onCreateView(inflater, container, savedInstanceState) 42 43 val titles = arrayListOf("Mac", "Apple", "Mini", "iMac", "Pro") 44 val adapter = ArrayAdapter<String>(this.context, android.R.layout.simple_list_item_1, titles) 45 listView.adapter = adapter 46 47 val view = inflater.inflate(R.layout.fragment_1, container, false) 48 49 return view 50 } 51}

xml

1//activity_main.xml 2<android.support.constraint.ConstraintLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:tools="http://schemas.android.com/tools" 5 xmlns:app="http://schemas.android.com/apk/res-auto" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 tools:context=".MainActivity"> 9 10 <android.support.design.widget.TabLayout 11 android:id="@+id/tabs_main" 12 android:layout_width="match_parent" 13 android:layout_height="wrap_content" 14 app:tabMode="fixed" /> 15 16 <android.support.v4.view.ViewPager 17 android:id="@+id/viewpager_main" 18 android:layout_width="match_parent" 19 android:layout_height="wrap_content" 20 app:layout_constraintTop_toBottomOf="@+id/tabs_main"/> 21 22</android.support.constraint.ConstraintLayout> 23 24 25//fragment_1.xml 26<android.support.constraint.ConstraintLayout 27 xmlns:android="http://schemas.android.com/apk/res/android" 28 android:layout_width="match_parent" 29 android:layout_height="match_parent"> 30 31 <ListView 32 android:id="@+id/listView" 33 android:layout_width="match_parent" 34 android:layout_height="match_parent" /> 35 36</android.support.constraint.ConstraintLayout>

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

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

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

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

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

guest

回答1

0

ベストアンサー

listView が使えるのは onCreateView 終わってからではないでしょうか.

投稿2019/05/08 09:58

jimbe

総合スコア12632

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

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

kotlin

2019/05/08 10:49

ご指摘通りにonCreateViewではなくonViewCreatedでListViewを生成したら成功しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問