Ich habe RecyclerView
.Das Element an der Position ist 0 ist Header für EditText
, dann sind alle anderen Elemente images.On lange drücken auf EditText
gibt es Option einfügen. Das funktioniert gut. Aber wenn ich Scroll die Recycler-Ansicht nach unten und wieder nach oben und lange drücken, wird es nicht zeigen, die Option Einfügen und gibt Fehler. Beim Scrollen nach unten und wieder nach oben kommt Anruf an onBindViewHolder
.EditText gibt Fehler: TextView unterstützt keine Textauswahl. Auswahl abgebrochen
TextView
: TextView
unterstützt keine Textauswahl. Auswahl abgebrochen
public class Someclass extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener {
private static final int TYPE_EDIT = 0;
private static final int TYPE_IMAGE = 1;
List<String> msomelist = new ArrayList<String>();
public void someMethod(List<String> somelist) {
msomelist.clear();
msomelist.addAll(somelist);
notifyDataSetChanged();
}
public Someclass(Activity activity, List<String> somelist) {
this.activity = activity;
this.msomelist.clear();
this.msomelist.addAll(somelist);
mContext = activity;
}
@Override
public int getItemViewType(int position) {
if (position == 0)
return TYPE_EDIT;
return TYPE_IMAGE;
}
@Override
public void onClick(View view) {
int postition = (int) view.getTag();
msomelist.remove(postition);
notifyDataSetChanged();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
ImageView img;
public ViewHolder(View itemView) {
super(itemView);
img = (ImageView) itemView.findViewById(R.id.image);
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_IMAGE) {
View view = LayoutInflater.from(mContext)
.inflate(somelayout, false);
ViewHolder holder = new ViewHolder(view);
return holder;
} else {
View view = LayoutInflater.from(mContext)
.inflate(someotherlayout, false);
return new OtherHolder(view);
}
}
class OtherHolder extends RecyclerView.ViewHolder {
EditText editText;
public OtherHolder(View itemView) {
super(itemView);
editText = (EditText) itemView.findViewById(R.id.ediItext);
editText.requestFocus();
}
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ViewHolder) {
some function.....
} else if (holder instanceof OtherHolder) {
some function
}
}
}
poste bitte deinen Code! –
Ineed den Layoutcode und die Header des Adapters und der Zeile. Um festzustellen, Fehler –
getan .. ich kann verschiedene Probleme für die gleiche, aber keine Lösung. –