如何在循环视图示例中仅更改所选视图的背景颜色?只需更改单击项目视图的背景颜色。

一次只能显示一个选定项目,背景颜色会发生变化,其余项目必须与选择前一样。

这是我的代码:

主要活动

public class MainActivity extends AppCompatActivity {

RecyclerView rv1;

private final String android_versions[]={

"Donut",

"Eclair",

"Froyo",

"Gingerbread",

"Honeycomb",

"Ice Cream Sandwich",

"Jelly Bean",

"KitKat",

"Lollipop",

"Marshmallow"

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initViews();

}

private void initViews(){

rv1=(RecyclerView)findViewById(R.id.recyclerView1);

rv1.setHasFixedSize(true);

RecyclerView.LayoutManager layoutManager=new LinearLayoutManager(getApplicationContext());

rv1.setLayoutManager(layoutManager);

RecyclerDataAdapter rda=new RecyclerDataAdapter(rv1,getApplicationContext(),android_versions);

rv1.setAdapter(rda);

}

}

RecyclerDataadapter

public class RecyclerDataAdapter extends RecyclerView.Adapter {

private String android_versionnames[];

private Context context1;

private RecyclerView mRecyclerView;

public RecyclerDataAdapter(RecyclerView recylcerView,Context context,String android_versionnames[]){

this.android_versionnames=android_versionnames;

this.context1=context;

mRecyclerView=recylcerView;

setHasStableIds(true);

System.out.println("Inside dataadapter,Android names : \n ");

for(int i=0;i

System.out.println("\n"+android_versionnames[i]);

}

}

@Override

public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.row_layout,parent,false);

return new ViewHolder(view);

}

@Override

public void onBindViewHolder(final ViewHolder holder, int position) {

holder.tv1.setText(android_versionnames[position]);

}

@Override

public int getItemCount() {

return android_versionnames.length;

}

public class ViewHolder extends RecyclerView.ViewHolder {

private TextView tv1;

LinearLayout row_linearlayout;

RecyclerView rv2;

public ViewHolder(final View itemView) {

super(itemView);

tv1=(TextView)itemView.findViewById(R.id.txtView1);

row_linearlayout=(LinearLayout)itemView.findViewById(R.id.row_linrLayout);

rv2=(RecyclerView)itemView.findViewById(R.id.recyclerView1);

/*itemView.setBackgroundColor(0x00000000);//to transparent*/

}

}

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐