效果图:
我们去写这个activity:
public class TestRecycleViewActivity extends Activity {
private static final String TAG = TestRecycleViewActivity.class.getSimpleName();
private RecyclerView mListRecyclerView;
private RecyclerAdapter mAdapter;
private ArrayList<NormalItemInfo> mSymptomList = new ArrayList<>();
private String[] mDescriptionArray;
public static void startActivity(Context context) {
Intent intent = new Intent();
intent.setClass(context,TestRecycleViewActivity.class);
context.startActivity(intent);
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recycle_list_acitivity);
mListRecyclerView = (RecyclerView) findViewById(R.id.baby_recycler_view);
mDescriptionArray = getResources().getStringArray(R.array.description);
updateSymptomInfo();
mAdapter = new RecyclerAdapter(this, mSymptomList);
mListRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mListRecyclerView.setAdapter(mAdapter);
RelativeLayout knowledge = (RelativeLayout) findViewById(R.id.knowledge);
knowledge.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
public void updateSymptomInfo() {
if (isFinishing()) {
return;
}
for(int i=0;i<mDescriptionArray.length;i++) {
NormalItemInfo symptomInfo = new NormalItemInfo();
symptomInfo.name = CalendarCont.mList[i];
symptomInfo.description = mDescriptionArray[i];
mSymptomList.add(symptomInfo);
}
}
}Adapter:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.SymptomHolder> {
private Context mContext;
private ArrayList<NormalItemInfo> mSymptomList = new ArrayList<>();
private LayoutInflater mLayoutInflater;
public RecyclerAdapter(Context context, ArrayList<NormalItemInfo> symptomList) {
mSymptomList = symptomList;
mContext = context;
mLayoutInflater = LayoutInflater.from(context);
}
@Override
public SymptomHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = mLayoutInflater.inflate(R.layout.normal_recycleview_item, parent, false);
return new SymptomHolder(itemView);
}
@Override
public void onBindViewHolder(SymptomHolder holder, final int position) {
holder.icon.setSelected(mSymptomList.get(position).isSelected);
holder.nameTV.setText(mSymptomList.get(position).name);
holder.description.setText(mSymptomList.get(position).description);
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mSymptomList.get(position).isSelected) {
deSelectAll();
}else{
deSelectOther(position);
}
notifyDataSetChanged();
}
});
}
public void deSelectOther(final int position) {
for (int i=0;i<mSymptomList.size();i++) {
if(i == position) {
mSymptomList.get(i).isSelected = true;
}else{
mSymptomList.get(i).isSelected = false;
}
}
}
public void deSelectAll() {
for (int i=0;i<mSymptomList.size();i++) {
mSymptomList.get(i).isSelected = false;
}
}
@Override
public int getItemCount() {
return mSymptomList.size();
}
public class SymptomHolder extends RecyclerView.ViewHolder {
private ImageView icon;
private TextView nameTV;
private TextView description;
private View mView;
private SymptomHolder(View itemView) {
super(itemView);
mView = itemView;
icon = (ImageView)itemView.findViewById(R.id.symptom_icon);
nameTV = (TextView)itemView.findViewById(R.id.symptom_name);
description = (TextView)itemView.findViewById(R.id.description);
}
}
}主xml:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/baby_recycler_view" android:layout_above="@+id/knowledge" android:layout_width="match_parent" android:layout_height="match_parent"/> <RelativeLayout android:id="@+id/knowledge" android:layout_width="match_parent" android:layout_height="44dp" android:background="#F5F5F5" android:layout_alignParentBottom="true"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="16dp" android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/ca_img_calendar_knowledge"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="8dp" android:layout_toRightOf="@id/img" android:text="小知识" android:textColor="#898B94" android:textSize="16sp"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="16dp" android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/ca_img_calendar_knowledge_enter"/> </RelativeLayout> </RelativeLayout>
listItem:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/symptom_icon" android:layout_width="19dp" android:layout_height="19dp" android:layout_marginLeft="21dp" android:layout_marginTop="23dp" android:background="@drawable/ca_calendar_symptom_selector"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="12dp" android:layout_marginTop="20dp" android:orientation="vertical"> <TextView android:id="@+id/symptom_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:maxLines="1" android:text="只有经血" android:textColor="@color/pregnancy_color_181818" android:textSize="18sp"/> <TextView android:id="@+id/description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="16dp" android:layout_marginTop="8dp" android:maxLines="2" android:text="此时处于月经期,无宫颈粘液分泌" android:textColor="@color/comm_text" android:textSize="13sp"/> </LinearLayout> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_marginTop="16dp" android:layout_marginRight="16dp" android:layout_marginLeft="16dp" android:background="@color/ca_line_color"/> </LinearLayout>
代码在:https://github.com/nickgao1986/StepSport
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
