J'ai utilisé listview
avec des attributs comme ci-dessous:
<ListView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:entries="@array/fi"/>
Maintenant, je le convertis en RecyclerView
<Android.support.v7.widget.RecyclerView
Android:id="@+id/rv"
Android:layout_width="match_parent"
Android:layout_height="match_parent" />
Je veux savoir si nous avons l'attribut Android:entries
dans RecyclerView
? Ou tout autre attribut au lieu d'entrées?
Comme expliqué correctement dans les autres réponses, il n’existe pas d’attribut permettant de remplir RecyclerView à partir de XML. Cependant, en utilisant le Liaison de données Android vous pouvez créer un attribut similaire assez facilement:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto">
<Android.support.v7.widget.RecyclerView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:entries="@{@stringArray/fi}"
app:layoutManager="Android.support.v7.widget.LinearLayoutManager"/>
</layout>
Voici la définition de l'adaptateur de liaison:
import Android.databinding.BindingAdapter;
public class RecyclerViewBindings {
@BindingAdapter("entries")
public static void entries(RecyclerView recyclerView, String[] array) {
recyclerView.setAdapter(new SimpleArrayAdapter(array));
}
static class SimpleArrayAdapter extends RecyclerView.Adapter<SimpleHolder> {
private final String[] mArray;
public SimpleArrayAdapter(String[] array) {
mArray = array;
}
@Override
public SimpleHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
final View view = inflater.inflate(Android.R.layout.simple_list_item_1, parent, false);
return new SimpleHolder(view);
}
@Override
public void onBindViewHolder(SimpleHolder holder, int position) {
holder.mTextView.setText(mArray[position]);
}
@Override
public int getItemCount() {
return mArray.length;
}
}
static class SimpleHolder extends RecyclerView.ViewHolder {
private final TextView mTextView;
public SimpleHolder(View itemView) {
super(itemView);
mTextView = (TextView) itemView.findViewById(Android.R.id.text1);
}
}
}
Ensuite, vous devez utiliser les méthodes DataBindingUtil
pour gonfler la présentation.
Gonfler à l'intérieur d'une activité:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataBindingUtil.setContentView(this, R.layout.content_main);
}
Gonfler à l'intérieur d'un fragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ContentMainBinding bindings = DataBindingUtil.inflate(inflater, R.layout.content_main, container, false);
return bindings.getRoot();
}
Je crains que cela ne soit pas possible à l’origine, vous pouvez étendre RecyclerView et définir votre propre attribut personnalisé qui accepte un tableau de chaînes, puis remplir votre adaptateur RecyclerView avec ces valeurs.
Vérifiez ce lien: http://developer.Android.com/training/custom-views/create-view.html#customattr
Non. Il n'y a pas d'attribut directement disponible dans
RecyclerView
. Vous devez le faire à partir de code Java par programmation en utilisantLayoutManager
etRecyclerView.Adapter
. Référez-vous cette réponse .
RAISON: Comme nous le savons, RecyclerView
ne gonfle pas tant que nous n’avons pas défini une LayoutManager
. De plus, LayoutManager
est nécessaire pour gonfler les vues individuelles de RecyclerView
. Ces vues d'élément individuelles sont extraites du RecyclerView.Adapter
. Ainsi, tant que vous n'avez pas défini LayoutManager
et RecyclerView.Adapter
sur RecyclerView
, vous ne pouvez pas utiliser RecyclerView
.
J'espère que cette réponse vous aidera.
Non, sous Android, Recyclerview ne contient pas Android: entrées ou attributs similaires. RecyclerView est le successeur de listview mais il manque toujours l'attribut d'entrées et onclicklistener.
voici le lien de la documentation officielle Android
https://developer.Android.com/reference/Android/support/v7/widget/RecyclerView.html
Ce site décrit également l’attribut Android: entries.