Ho RecyclerView
. L'elemento in posizione è 0 è intestazione per EditText
, quindi tutti gli altri elementi sono immagini.Premendo a lungo su EditText
, l'opzione incolla.Questo funziona correttamente. Ma quando faccio scorrere verso il basso la vista del riciclatore e di nuovo in alto, premo a lungo per non mostrare l'opzione Incolla e dà errore. On Scorrendo verso il basso e di nuovo in cima passa la chiamata a onBindViewHolder
.Errore di modifica del testo: TextView non supporta la selezione del testo. Selezione annullata
TextView
: TextView
non supporta la selezione del testo. Selezione annullata.
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
}
}
}
inserisci il tuo codice per favore! –
anche l'adattatore e il codice di layout e le intestazioni della riga. Per determinare l'errore –
done..i posso trovare vari problemi presentati per lo stesso, ma nessuna soluzione. –