Я слежу за this руководство по созданию RecyclerView
, но я столкнулся с препятствием. Код дает не очень понятно, но при создании пользовательских Recyclerview.Adpater
, то есть этот метод:RelativeLayout нельзя отнести к TextView в LayoutInflator
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, parent, false);
// set the view's size, margins, paddings and layout parameters
...
ViewHolder vh = new ViewHolder(v);
return vh;
}
Теперь я не могу показаться, чтобы выяснить, где R.layout.my_text_view
пришел. Они не указали это в своем файле макета. Итак, когда я попытался вставить этот код в свой адаптер, он сказал мне, что символ не найден. Таким образом, я добавил его в качестве идентификатора к моему TextView
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_recycle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".recycle.RecycleActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".recycle.RecycleActivity"/>
<include
layout="@layout/toolbar_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/my_text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
Но я до сих пор не могу использовать my_text_view
в R.layout.my_text_view
, потому что до сих пор не может найти его. Я также попробовал R.id.my_text_view
, который он может найти, но он говорит, что ему нужен макет, а не идентификатор. поэтому я попытался с помощью R.layout.activity_recycle
так:
@Override
public RecycleViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
// create a new view
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.activity_recycle, parent, false);
// set the view's size, margins, paddings and layout parameters
return new ViewHolder(v);
}
Но это не сработало, и я получаю исключение:
java.lang.ClassCastException: android.widget.RelativeLayout не может быть приведен к андроида .widget.TextView
Что мне не хватает? Откуда появился этот таинственный my_text_view
и как его использовать?
R.layout.activity_recycle - это текстовое представление макета не принимает макет. он примет идентификатор элемента макета. –
R.layout.my_text_view - это что-то вроде макета или карты, которые будут раздуваться на вашем просмотре ресайклера, аналогично элементу списка –
, чтобы проверить этот ответ и следовать этому учебнику http://stackoverflow.com/a/41499210/7130121 –