Hi i'm wondering how to change text color of an item selected on a ListView ? I have a fragment who is a ListView and i wanted to change the color text when user click on an item. I Tried something on onListItemClick() function but it's not working.
Can you help me please ?
public class TripAdapter extends RecyclerView.Adapter<TripAdapter.MyViewHolder> {
private Context mContext;
private List<A> avList = new ArrayList<>();
// for tracking new current click item position
private int mSelectedPosition = -1;
class MyViewHolder extends RecyclerView.ViewHolder {
Button btnOpen;
TextView tvearn;
MyViewHolder(View view) {
super(view);
btnOpen = view.findViewById(R.id.btn_open);
tvearn = view.findViewById(R.id.tv_earn);
}
}
public TripAdapter(Context context, List<A> avList) {
mContext = context;
this.avList = avList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView =LayoutInflater.from(parent.getContext()).inflate(R.layout.one_way_list_item, parent, false);
return new MyViewHolder(itemView);
}
// supopose u want to change tvEarn textView color when a list item click otherwise it set default;
if click on specific list item this row textview will be white otherwise it set black
@Override
public void onBindViewHolder(ViewHolderInsurer holder, @SuppressLint("RecyclerView") final int position) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSelectedPosition = position;
notifyDataSetChanged();
}
});
if (mSelectedPosition == position) {
holder.tvearn.setTextColor("#ffffff");
} else {
holder.radioButton.setTextColor("#000000");
}
}
@Override
public int getItemCount() {
return avList.size();
}
}
As you mentioned you already created android:textColor="@drawable/button_text"
. Make your button_text like this
<item
android:state_pressed="true"
android:color="#ff000000" />
<item
android:state_selected="true"
android:color="#ffff0000" <!-- selected color -->
/>
<item
android:state_focused="true"
android:color="#ff0000ff" />
<item android:color="#ff000000" /> <!-- default color-->
In your Java code use view.setSelected(true)
Use it in onItemClick()
method.
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
view.setSelected(true);
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.