I have created a textview dynamically in android. When i clicked the textview the color changes from white to orange, but what i want is when i clicked another textview, the other textview that has been changed to orange will change back to white. This is the code to create the textview:
for (int i = 1; i <= n; i++) {
final TextView mPageNumber = new TextView(getActivity());
mPageNumber.setText("" + i);
mPageNumber.setId(Integer.parseInt(String.valueOf(i)));
mPageNumber.setTextColor(getResources().getColor(R.color.colorWhite));
mPageNumber.setPadding(60,30,60,30);
final int id_ = mPageNumber.getId();
LinearLayout layout = (LinearLayout) getView().findViewById(R.id.pagination);
layout.setBackgroundResource(R.color.colorPrimary);
layout.addView(mPageNumber);
OnClickListener
mPageNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (toastMessage!= null) {
toastMessage.cancel();
}
toastMessage = Toast.makeText(getActivity().getApplicationContext(), "Button with id =" + id_ +
" is clicked",Toast.LENGTH_SHORT);
current = id_;
toastMessage.show(); mPageNumber.setTextColor(getResources().getColor(R.color.colorOrange));
You can iterate through all the child in the layout and set the color as white and then the selected color as orange like this in below example.
LinearLayout layout;
private void setAllTextColorAsWhite() {
if(layout == null) {
return;
}
int childCount = layout.getChildCount();
for (int i = 0; i < childCount; i++) {
TextView textView = (TextView) layout.getChildAt(i);
textView.setTextColor(getResources().getColor(R.color.white));
}
}
public void setTextViews() {
layout = (LinearLayout) getView().findViewById(R.id.pagination);
layout.removeAllViews();
for (int i = 1; i <= n; i++) {
final TextView mPageNumber = new TextView(getActivity());
mPageNumber.setText("" + i);
mPageNumber.setId(Integer.parseInt(String.valueOf(i)));
mPageNumber.setTextColor(getResources().getColor(R.color.colorWhite));
mPageNumber.setPadding(60, 30, 60, 30);
final int id_ = mPageNumber.getId();
layout.setBackgroundResource(R.color.colorPrimary);
layout.addView(mPageNumber);
mPageNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (toastMessage!= null) {
toastMessage.cancel();
}
toastMessage = Toast.makeText(getActivity().getApplicationContext(), "Button with id =" + id_ +
" is clicked",Toast.LENGTH_SHORT);
current = id_;
toastMessage.show();
setAllTextColorAsWhite();
mPageNumber.setTextColor(getResources().getColor(R.color.colorOrange));
}
});
}
}