Ошибка поддержки v4 view.NestedScrollingChild2 в адаптере набора повторных просмотров - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу создать горизонтальное представление корзины, и я написал этот код:

в основной деятельности xml

 <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp" >
    <android.support.v7.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</RelativeLayout>

А это класс адаптера

public class AdapterNote extends ArrayAdapter<StructCategory> {

public AdapterNote(ArrayList<StructCategory> array) {
    super(G.context, R.layout.adapter_category, array);
}
private static class ViewHolder {

    public TextView txtTitle;


    public ViewHolder(View view) {
        txtTitle = (TextView) view.findViewById(R.id.cat_txt);

    }
    public void fill(final ArrayAdapter<StructCategory> adapter, final StructCategory item, final int position) {
        txtTitle.setText(item.title);
    }
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    StructCategory item = getItem(position);
    if (convertView == null) {
        convertView = G.inflater.inflate(R.layout.adapter_category, parent, false);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.fill(this, item, position);
    return convertView;
}}

Ву функции setadapter MainClass setadapter есть ошибка: Тип android.support.v4.view.NestedScrollingChild2 не может быть разрешен.На него косвенно ссылаются необходимые файлы .class

Я импортировал поддержку v4 api 20 и v7compat v20 и v7 recycleview api 20, но не работает мой код

LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);

    RecyclerView myList = (RecyclerView) findViewById(R.id.my_recycler_view);
    myList.setLayoutManager(layoutManager);
    adapter = new AdapterNote(G.tasksCategory);
    myList.setAdapter(adapter);

, и я создаю xml для класса адаптера:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" android:padding="8dip" android:gravity="right">
<TextView
    android:id="@+id/cat_txt"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:background="@drawable/category_txt"
    android:gravity="center_vertical|center"
    android:text="TextView"
    android:textColor="#000" />
    </LinearLayout>

, пожалуйста, помогите мне с этой проблемой

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Я редактирую свой код Как в примере с адаптером recycleview: пожалуйста, проверьте мой код и исправьте его

Ошибка txt на Classname и MyViewHolder: иерархия типа AdapterCategory не соответствует

в разделе проблемыпоказать эту ошибку: проект не был собран, поскольку его путь сборки не завершен.Не удается найти файл класса для android.support.v4.view.NestedScrollingChild2.Исправьте путь сборки, затем попробуйте собрать этот проект

public class AdapterCategory extends RecyclerView.Adapter<AdapterCategory.MyViewHolder> {

private ArrayList<StructCategory> categoryList;
private ItemClickListener         mClickListener;


AdapterCategory(Context context, ArrayList<StructCategory> categoryList) {
    G.inflater = LayoutInflater.from(context);
    this.categoryList = categoryList;

}


// inflates the row layout from xml when needed
@Override
@NonNull
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = G.inflater.inflate(R.layout.adapter_category, parent, false);
    return new MyViewHolder(view);
}


// binds the data to the view and textview in each row
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    StructCategory hList = categoryList.get(position);
    holder.myTextView.setText(hList.title);
}


// total number of rows
@Override
public int getItemCount() {
    return categoryList.size();
}


// stores and recycles views as they are scrolled off screen
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView myTextView;


    MyViewHolder(View itemView) {
        super(itemView);
        myTextView = (TextView) itemView.findViewById(R.id.cat_txt);
        itemView.setOnClickListener(this);
    }


    @Override
    public void onClick(View view) {
        if (mClickListener != null)
            mClickListener.onItemClick(view, getAdapterPosition());
    }
}


// convenience method for getting data at click position
public StructCategory getItem(int id) {
    return categoryList.get(id);
}


// allows clicks events to be caught
public void setClickListener(ItemClickListener itemClickListener) {
    this.mClickListener = itemClickListener;
}


// parent activity will implement this method to respond to click events
public interface ItemClickListener {

    void onItemClick(View view, int position);
}}
0 голосов
/ 09 февраля 2019

Поскольку вы используете RecyclerView, расширяет ваш класс адаптера с помощью RecyclerView.Adapter <>.

Пожалуйста, укажите это: https://www.google.com/amp/s/www.androidhive.info/2016/01/android-working-with-recycler-view/amp/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...