溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android中如何解使用RecyclerView實(shí)現(xiàn)投票系統(tǒng)

發(fā)布時(shí)間:2021-09-27 13:43:16 來源:億速云 閱讀:129 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)Android中如何解使用RecyclerView實(shí)現(xiàn)投票系統(tǒng)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

一、創(chuàng)建一個(gè)fragment_vote_list.xml用來顯示投票的主頁面

(1)標(biāo)題欄使用Toolbar(2)投票區(qū)域可以滑動(dòng),使用RecyclerView實(shí)現(xiàn)

<?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" xmlns:app="http://schemas.android.com/apk/res-auto" android:clickable="true" android:background="@color/backgroundColorWhite"> <LinearLayout  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="@color/backgroundColorWhite"  android:orientation="vertical">  <android.support.v7.widget.Toolbar   android:id="@+id/vote_list_toolbar"   android:layout_width="match_parent"   android:layout_height="@dimen/toolbarHeight"   android:background="@color/backgroundColorWhite"   app:contentInsetStart="0dp">   <RelativeLayout    android:layout_width="match_parent"    android:layout_height="match_parent">    <Button     android:id="@+id/vote_list_back_btn"     android:layout_width="@dimen/titleBarBackWidth"     android:layout_height="@dimen/titleBarBackHeight"     android:layout_margin="@dimen/margin_min"     android:layout_centerVertical="true"     android:background="@drawable/titlebar_back"     android:layout_marginLeft="@dimen/padding_20"     />    <TextView     android:id="@+id/vote_list_title_tv"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_centerInParent="true"     android:layout_gravity="center_vertical"     android:text="投票"     android:textColor="@color/textcolor_28282d"     android:textSize="@dimen/textSizeMax"     android:textStyle="bold"/>   </RelativeLayout>  </android.support.v7.widget.Toolbar>  <android.support.v7.widget.RecyclerView   android:id="@+id/vote_list_recycleview"   android:layout_width="match_parent"   android:layout_height="match_parent">  </android.support.v7.widget.RecyclerView> </LinearLayout></RelativeLayout>

注:界面字體大小以及控件寬度自行調(diào)整即可,使用RecyclerView首先需要在項(xiàng)目的build.gradle中添加相應(yīng)的依賴庫才行。添加:implementation ‘com.android.support:recyclerview-v7:24.2.1'

二、創(chuàng)建一個(gè)item_vote.xml用來顯示投票的具體內(nèi)容

(1)主布局使用LinearLayout實(shí)現(xiàn),里面添加一個(gè)TextView用來顯示投票的問題,使用CheckBox作為投票的多選框。(2)將當(dāng)前的Item加載到投票的主頁面中

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/backgroundColorWhite" > <TextView  android:id="@+id/item_vote_question_tv"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="1.請(qǐng)問你支持哪一個(gè)決議?"  android:textColor="@color/black"  android:textSize="@dimen/item_vote_question"  android:layout_marginLeft="@dimen/padding_20" /> <LinearLayout  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:background="@color/backgroundColorWhite"  android:orientation="vertical"  android:layout_margin="@dimen/padding_20">  <CheckBox   android:id="@+id/item_vote_answer1_cb"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:text="AAAAAA"   android:textColor="@color/black"   android:textSize="@dimen/item_vote_answer" />  <CheckBox   android:id="@+id/item_vote_answer2_cb"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:text="BBBBBBB"   android:textColor="@color/black"   android:textSize="@dimen/item_vote_answer" />  <CheckBox   android:id="@+id/item_vote_answer3_cb"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:text="BCCCCC"   android:textColor="@color/black"   android:textSize="@dimen/item_vote_answer" /> </LinearLayout></LinearLayout>

三、創(chuàng)建一個(gè)投票信息實(shí)體類作為適配器的適配類型,新建VoteInfo.java類。

public class VoteInfo { private String questionItem; private String[] answerItems; public VoteInfo(String questionItem,String[] answerItems){  this.questionItem=questionItem;  this.answerItems=answerItems; } public String getQuestionItem(){  return questionItem; } public String[] getAnswerItems(){  return answerItems; }}

四、接下來需要為RecyclerView準(zhǔn)備一個(gè)適配器,新建VoteInfoAdapter.java,讓這個(gè)適配器繼承自RecyclerView.Adapter,并將泛型指定為VoteInfoAdapter.ViewHolder。其中,ViewHolder是我們?cè)赩oteInfoAdapter中定義的一個(gè)內(nèi)部類。

public class VoteInfoAdapter extends RecyclerView.Adapter<VoteInfoAdapter.ViewHolder> { private List<VoteInfo> mVoteInfoList; @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {  View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_vote,parent,false);  ViewHolder holder=new ViewHolder(view);  return holder; } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) {  VoteInfo voteInfo=mVoteInfoList.get(position);  holder.questionItem.setText(voteInfo.getQuestionItem());  holder.answerItem_1.setText(voteInfo.getAnswerItems()[0]);  holder.answerItem_2.setText(voteInfo.getAnswerItems()[1]);  holder.answerItem_3.setText(voteInfo.getAnswerItems()[2]); } @Override public int getItemCount() {  return mVoteInfoList.size(); } static class ViewHolder extends RecyclerView.ViewHolder{  TextView questionItem;  CheckBox answerItem_1;  CheckBox answerItem_2;  CheckBox answerItem_3;  public ViewHolder(View itemView) {   super(itemView);   questionItem=(TextView)itemView.findViewById(R.id.item_vote_question_tv);   answerItem_1=(CheckBox)itemView.findViewById(R.id.item_vote_answer1_cb);   answerItem_2=(CheckBox)itemView.findViewById(R.id.item_vote_answer2_cb);   answerItem_3=(CheckBox)itemView.findViewById(R.id.item_vote_answer3_cb);  } } public VoteInfoAdapter(List<VoteInfo> voteInfoList){  mVoteInfoList=voteInfoList; }}

五、適配器已經(jīng)準(zhǔn)備完畢,開始使用RecyclerView,新建一個(gè)ShowVoteAdapter.java類。

public class ShowVoteActivity extends BaseActivity{ @BindView(R.id.vote_list_recycleview) RecyclerView recyclerView; private List<VoteInfo> voteInfoList=new ArrayList<VoteInfo>(); @Override protected void onCreate(Bundle saveInstanceState) {  super.onCreate(saveInstanceState);  ScreenUtils.setContentViewWithOrientation(this,    ScreenUtils.isPhone() ? R.layout.fragment_vote_list : R.layout.fragment_vote_list);  initVoteInfo();  LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);  recyclerView.setLayoutManager(linearLayoutManager);  VoteInfoAdapter voteInfoAdapter=new VoteInfoAdapter(voteInfoList);  recyclerView.setAdapter(voteInfoAdapter); } private void initVoteInfo(){  VoteInfo vote1=new VoteInfo("1.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote1);  VoteInfo vote2=new VoteInfo("2.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote2);  VoteInfo vote3=new VoteInfo("3.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote3);  VoteInfo vote4=new VoteInfo("4.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote4);  VoteInfo vote5=new VoteInfo("5.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote5);  VoteInfo vote6=new VoteInfo("6.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote6);  VoteInfo vote7=new VoteInfo("7.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote7);  VoteInfo vote8=new VoteInfo("8.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote8);  VoteInfo vote9=new VoteInfo("9.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote9);  VoteInfo vote10=new VoteInfo("10.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote10);  VoteInfo vote11=new VoteInfo("11.請(qǐng)問以下哪個(gè)答案最佳?",new String[]{"AAAAAA","BBBBBB","CCCCCC"});  voteInfoList.add(vote11); }}

六、需要AndroidManifest.xml中注冊(cè)ShowVoteActivity,才能夠正常啟動(dòng)。

<activity android:name="com.inpor.fastmeetingcloud.activity.ShowVoteActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait" android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />

感謝各位的閱讀!關(guān)于“Android中如何解使用RecyclerView實(shí)現(xiàn)投票系統(tǒng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI