我有一個RecyclerView
TextView
從數組MyData
加載。其實我需要的是,當我點擊RecyclerView
中的任何項目時,項目必須獲得顏色,而當我點擊另一個項目時,我希望第一個項目變得正常。如何爲Recycler View的選定項目設置顏色?
private static class MyOnClickListener implements View.OnClickListener {
private final Context context;
String PersonGenerated;
private MyOnClickListener(Context context) {
this.context = context;
}
@Override
public void onClick(View v) {
// removeItem(v);
int selectedItemPosition = recyclerView.getChildPosition(v);
RecyclerView.ViewHolder viewHolder
= recyclerView.findViewHolderForPosition(selectedItemPosition);
TextView textViewName
= (TextView) viewHolder.itemView.findViewById(R.id.textview_name);
String selectedName = (String) textViewName.getText();
data = new ArrayList<DataModel>();
for (int i = 0; i < MyData.nameArray.length; i++) {
data.add(new DataModel(
MyData.id_[i],
MyData.nameArray[i]
));
}
}
}
這是我的適配器類別:
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {
private ArrayList<DataModel> dataSet;
public CustomAdapter(ArrayList<DataModel> data) {
this.dataSet = data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.adapter_persons, parent, false);
view.setOnClickListener(Persons.myOnClickListener);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int listPosition) {
holder.textViewName.setText(dataSet.get(listPosition).getName());
}
@Override
public int getItemCount() {
return dataSet.size();
}
public void animate(RecyclerView.ViewHolder viewHolder) {
final Animation animAnticipateOvershoot = AnimationUtils.loadAnimation(context, R.anim.anticipateovershoot_interpolator);
viewHolder.itemView.setAnimation(animAnticipateOvershoot);
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
TextView textViewName;
public MyViewHolder(View itemView) {
super(itemView);
this.textViewName = (TextView) itemView.findViewById(R.id.textview_name);
}
}
}
這是我的數組類:
public class MyData {
static String[] nameArray = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"};
static Integer[] id_ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29};
}
適配器佈局
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:background="@drawable/select_row"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<TextView
android:layout_weight="1"
android:layout_width="50dp"
android:layout_height="50dp"
style="@style/custom_text_oval"
android:text="1"
android:textColor="#8F8F8F"
android:id="@+id/textview_name" />
Recyclerview佈局
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/linearLayout3"
android:layout_gravity="center_horizontal">
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
感謝,但我已經嘗試過這種方式,但沒有更迭,我想,TextView的住宿點擊,直到另一個動作 –
檢查我的編輯ANS,然後再試一次 –
我檢查了,但是當我從TextView中刪除我的手指顏色再次變得正常:/ –