言語・環境
Android Studio 3.2.1
API level 26
[Kotlin]
現在、「Androidアプリ開発入門」という本を参考にアプリ開発の勉強をしています。
6章のRSSリーダーアプリをLoaderCallbacksを使って作成しているのですが
以下のエラーが出て前に進めません。
Adapterの実装方法について調べてみましたがほとんどJavaのコードがでてきて
Kotlinでの実装方法がわかりませんでした。
解決方法、Kotlinでの実装方法、または参考サイトなどご存知の方いましたらぜひ回答よろしくお願いいたします。
###エラーメッセージ
E/RecyclerView: No adapter attached; skipping layout
以下MainActivityのコードを載せておきます。
class MainActivity : AppCompatActivity(), LoaderManager.LoaderCallbacks<RssClass> { override fun onCreateLoader(id: Int, args: Bundle?) = RssLoaderClass(this) override fun onLoaderReset(loader: Loader<RssClass>?) { } override fun onLoadFinished(loader: Loader<RssClass>?, data: RssClass?) { if (data != null) { val recyclerView = findViewById<RecyclerView>(R.id.recyclerView) val adapter = ArticlesAdapterClass(this, data.articleClasses) { article -> val intent = CustomTabsIntent.Builder().build() intent.launchUrl(this,Uri.parse(article.link)) } recyclerView.adapter = adapter val layoutManager = GridLayoutManager(this,2) recyclerView.layoutManager = layoutManager } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) supportLoaderManager.initLoader(1,null,this) } }
以下、Adapterのコードです。
class ArticlesAdapterClass ( private val context: Context, private val articlesList: List<ArticleClass>, private val onArticleClicked: (ArticleClass) -> Unit) :RecyclerView.Adapter<ArticlesAdapterClass.ArticleViewHolder>() { private val inflater = LayoutInflater.from(context) class ArticleViewHolder(view: View) : RecyclerView.ViewHolder(view) { val title = view.findViewById<TextView>(R.id.titleText) val pubDate = view.findViewById<TextView>(R.id.pubDateText) } override fun getItemCount() = articlesList.size override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ArticleViewHolder { val view = inflater.inflate(R.layout.grid_articles_cell, parent, false) val viewHolder = ArticleViewHolder(view) view.setOnClickListener{ val position = viewHolder.adapterPosition val article = articlesList[position] onArticleClicked(article) } return viewHolder } override fun onBindViewHolder(holder: ArticleViewHolder, position: Int) { val article = articlesList[position] holder.title.text = article.articlesTitle holder.pubDate.text = context.getString(R.string.pubDateString,article.articlesPubDate) } }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/12 12:26