Могу ли я использовать один пользовательский адаптер для нескольких действий в одном проекте? - PullRequest
0 голосов
/ 06 мая 2018

Я создаю приложение для заказа еды на Android. В этом приложении я уже использовал пользовательский адаптер для флиппера изображений (Image Slideshow), и теперь я хочу использовать его для пользовательского просмотра списка. Так, кто-нибудь может подсказать мне, как это сделать

Это код для пользовательского адаптера

package com.example.zaheerulislam.thedelicioso;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomAdapter extends BaseAdapter {
    Context context;
    int[] SliderImages;
    String[] SliderNames;
    LayoutInflater inflter;

public CustomAdapter(Context applicationContext, String[] SliderNames, int[] SliderImages) {
    this.context = applicationContext;
    this.SliderImages = SliderImages;
    this.SliderNames = SliderNames;
    inflter = (LayoutInflater.from(applicationContext));

}

@Override
public int getCount() {
    return SliderNames.length;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View view, ViewGroup parent) {
    view = inflter.inflate(R.layout.activity_flipper_items, null);
    TextView fruitName = (TextView) view.findViewById(R.id.fruitName);
    ImageView fruitImage = (ImageView) view.findViewById(R.id.fruitImage);
    fruitName.setText(SliderNames[position]);
    fruitImage.setImageResource(SliderImages[position]);
    return view;
}
}

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Да, вы можете использовать один адаптер для нескольких видов деятельности. Если вид одного элемента не сильно отличается, то вы можете легко управлять с помощью ViewType. Если вид предмета более отличается или сложен, то в соответствии со стандартами Android необходимо использовать другой адаптер.

0 голосов
/ 06 мая 2018

Да, вы можете использовать тот же адаптер для флиппера изображения и ListView, но не RecyclerView. Вы можете расширить свой адаптер на ArrayAdapter, и все готово, поскольку в нем есть метод getView для заполнения пользовательских представлений, что необходимо для ListView.

Хотя RecyclerView адаптер не имеет этого метода, поэтому вам придется использовать ListView только во всех ваших проектах.

...