一、我的积分页面设计

1、页面布局文件 activity_my_points.xml
代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MyPointsActivity"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:background="@color/white"><ImageButtonandroid:id="@+id/returnBtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:src="@mipmap/left"android:background="@color/white"/><TextViewandroid:layout_width="wrap_content"android:layout_height="match_parent"android:layout_centerInParent="true"android:gravity="center"android:text="我的积分"android:textColor="@color/black"android:textStyle="bold" /></RelativeLayout><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="80dp"android:background="@mipmap/head_background"><TextViewandroid:id="@+id/totalPoint"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_centerVertical="true"android:layout_alignParentTop="true"android:text="学习总积分"android:textColor="@color/white"android:textStyle="bold"android:textSize="20dp"/><TextViewandroid:id="@+id/dataTotalPoint"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_below="@id/totalPoint"android:layout_alignLeft="@id/totalPoint"android:layout_centerVertical="true"android:text="4200"android:textColor="@color/white"android:textStyle="bold"android:textSize="38dp"/></RelativeLayout><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="30dp"android:background="@color/white"><TextViewandroid:id="@+id/studyPoint"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_centerVertical="true"android:text="学习积分"android:textColor="@color/black"/><TextViewandroid:id="@+id/jinRiPoint"android:layout_width="120dp"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_centerVertical="true"android:text="今日积分: 3积分"android:textSize="10dp"/></RelativeLayout><ListViewandroid:id="@+id/pointsList"android:layout_width="match_parent"android:layout_height="wrap_content"/>
</LinearLayout>

2、对列表项单独设计布局的文件 item_point.xml
代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">
<RelativeLayoutandroid:layout_width="match_parent"android:layout_height="60dp"android:paddingTop="8dp"><TextViewandroid:id="@+id/zhuTiTle"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="15dp"android:textColor="@color/black"/><TextViewandroid:id="@+id/introDc"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/zhuTiTle"android:layout_alignLeft="@id/zhuTiTle"android:layout_marginTop="5dp"/><Buttonandroid:id="@+id/watchBtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#FEF7EF"android:focusable="false"android:text="去看看"android:textColor="#BDA489"android:layout_centerVertical="true"android:layout_alignParentEnd="true"/>
</RelativeLayout></LinearLayout>

3、编写一个简单的Points实体类,用来封装数据
代码如下:

public class PointsItem {/**实体类,封装数据,*//**标题*/private String title;/**页面内容介绍*/private String introduce;/**构造方法*/public PointsItem(String title, String introduce) {this.title = title;this.introduce = introduce;}/**set,get方法,获取成员变量的值*/public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getIntroduce() {return introduce;}public void setIntroduce(String introduce) {this.introduce = introduce;}
}

4、自定义一个适配器,完成对列表项的适配器设置
PointsAdapter.java

代码如下:

package com.example.myruntimetest;import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;import java.util.List;public class PointsAdapter extends BaseAdapter {//BaseAdapter,一个抽象类,子类继承它时必须实现抽象方法。/*** 成员变量* data:封装有实体类的数据的list集合* context:上下文对象* resource:布局文件* intent:Intent 实现跳转功能* */private List<PointsItem> data;private Context context;private int resource;private Intent intent;/*** 构造方法*/public PointsAdapter(Context context, List<PointsItem> data, int resource){this.context=context;this.data=data;this.resource=resource;}/**** data.size():获取数据的数量* data.get(i):获取列表项i位置的数据对象* i:获取列表项的id* viewNow:返回的是一个新的view对象*/@Overridepublic int getCount() {return data.size();}@Overridepublic Object getItem(int i) {return data.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {final int t=i;//1、获取i位置的数据PointsItem item=data.get(i);//2、加载布局文件,并获取相应控件的idView viewNow=View.inflate(context,resource,null);TextView textTitle=viewNow.findViewById(R.id.zhuTiTle);TextView textIntro=viewNow.findViewById(R.id.introDc);Button btn=viewNow.findViewById(R.id.watchBtn);//3、添加点击事件btn.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View v) {//判断当前位置 position,如果是 3,则代表“每日答题”项目switch(t){case 2:Toast.makeText(context,item.getTitle()+"页右侧的按钮被点击", Toast.LENGTH_SHORT).show();//跳转到每日答题页面intent=new Intent(context, RadioButtonTestActivity.class);context.startActivity(intent);break;case 3:Toast.makeText(context,"按钮被点击了,当前点击是:"+item.getTitle(), Toast.LENGTH_SHORT).show();//跳转到每日答题页面
//                    Intent intent=new Intent(context, QuestionActivity.class);intent=new Intent(context,RadioButtonTestActivity.class);context.startActivity(intent);break;default:break;}}});//4、把数据放在控件上textTitle.setText(item.getTitle());textIntro.setText(item.getIntroduce());return viewNow;}
}

5、编写主页面MyPointsActivity.java类

代码如下:

public class MyPointsActivity extends AppCompatActivity{List<PointsItem> list = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_my_points);//准备数据initData();//找到对应的控件ListView pointsLv= findViewById(R.id.pointsList);//创建PonitsAdapter对象,调用构造方法PointsAdapter adapter = new PointsAdapter(this,list,R.layout.item_point);//给当前的listview设置adapter对象pointsLv.setAdapter(adapter);//添加列表项点击事件pointsLv.setOnItemClickListener(new AdapterView.OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(MyPointsActivity.this,"列表项被点击了", Toast.LENGTH_LONG).show();}});}private void initData() {//初始化数据,向list集合添加数据list.add(new PointsItem("登录", "1 分/每日首次登录"));list.add(new PointsItem("时政学习", "1 分/每日有效阅读、播报一篇"));list.add(new PointsItem("视听学习", "1 分/每日有效收听、观看一个"));list.add(new PointsItem("每日答题", "1 分/每组答题每答对 1 道积 1 分"));list.add(new PointsItem("挑战答题", "每日仅前两局得分;每日上限 5 分"));}
}

以上就可以使用一个最基本的列表项控件在界面中显示了。

注意:如果给列表项添加点击事件,会发生列表项与按钮点击事件冲突的问题,此时可以给相应的button设置属性 android:focusable="false"来解决。

实现效果如下:

二、单选复选按钮的使用

这里我是写了包含单选按钮的答题页面,并添加了点击事件,以及在答题正确或者错误时按钮的背景颜色、文字颜色的样式设计。

实现代码如下:

1、activity_radio_button_text.xml (答题页面的简单布局设计)

代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:layout_margin="10dp"tools:context=".RadioButtonTextActivity"><RelativeLayoutandroid:id="@+id/rtDaTi"android:layout_width="match_parent"android:layout_height="50dp"android:background="@color/white"><ImageButtonandroid:id="@+id/fanHuiBtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:background="@color/white"android:src="@mipmap/left" /><TextViewandroid:layout_width="wrap_content"android:layout_height="match_parent"android:layout_centerInParent="true"android:gravity="center"android:text="每日答题"android:textColor="@color/black"android:textStyle="bold" /></RelativeLayout><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"><TextViewandroid:id="@+id/tvTime"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="剩余时间:"android:layout_marginLeft="10dp"android:textSize="15dp"android:layout_centerVertical="true"/><Buttonandroid:id="@+id/submitBtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="10dp"android:layout_centerVertical="true"android:layout_alignParentEnd="true"android:text="提交"/></RelativeLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="400dp"android:orientation="vertical"android:background="@color/white"android:layout_marginLeft="20dp"android:layout_marginRight="20dp"android:layout_marginTop="20dp"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="单选题"android:textColor="@color/black"android:layout_marginTop="20dp"android:layout_marginLeft="10dp"android:textSize="22dp"/></RelativeLayout><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:layout_marginTop="10dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:background="#bfbfbf" /><TextViewandroid:id="@+id/tvQuestion"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:text="参加中国共产党第一次全国代表大会的上海的代表是___和李俊"android:textColor="@color/black"/><RadioGroupandroid:id="@+id/radioGroupText"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="30dp"android:paddingLeft="10dp"android:paddingRight="10dp"><RadioButtonandroid:button="@null"android:id="@+id/rbOption1"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_marginBottom="10dp"android:background="@drawable/selector_answer"android:textColor="@color/selector_answer_settext"android:text="董必武" /><RadioButtonandroid:button="@null"android:id="@+id/rbOption2"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_marginBottom="10dp"android:background="@drawable/selector_answer"android:textColor="@color/selector_answer_settext"android:text="李达" /><RadioButtonandroid:button="@null"android:id="@+id/rbOption3"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_marginBottom="10dp"android:background="@drawable/selector_answer"android:textColor="@color/selector_answer_settext"android:text="邓恩铭" /><RadioButtonandroid:button="@null"android:id="@+id/rbOption4"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_marginBottom="10dp"android:background="@drawable/selector_answer"android:textColor="@color/selector_answer_settext"android:text="王尽美" /></RadioGroup></LinearLayout>
</LinearLayout>

2、RadioButtonTextActivity类

代码如下:

public class RadioButtonTextActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {private TextView tvQuestion, tvAnswer;private RadioGroup radioGroupText;private Button submitBtn;private ImageButton fanHuiBtn;private RadioButton radioBtn;private int checkedId;private int correctId;private String radioBtnStr;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_radio_button_text);initView();}//初始化对象public void initView() {radioGroupText = findViewById(R.id.radioGroupText);submitBtn = findViewById(R.id.submitBtn);fanHuiBtn = findViewById(R.id.fanHuiBtn);radioGroupText.setOnCheckedChangeListener(this);submitBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {correctId = R.id.rbOption1;if (checkedId == correctId) {Toast.makeText(RadioButtonTextActivity.this, "答案正确", Toast.LENGTH_LONG).show();} else {radioBtn = findViewById(checkedId);radioBtnStr = radioBtn.getText().toString();radioBtn.setBackgroundResource(R.drawable.shape_answer_false);radioBtn.setTextColor(ContextCompat.getColor(RadioButtonTextActivity.this, R.color.answer_red_dark));Toast.makeText(RadioButtonTextActivity.this, "答案错误,正确答案是:" + radioBtnStr, Toast.LENGTH_LONG).show();}radioBtn = findViewById(correctId);radioBtn.setBackgroundResource(R.drawable.shape_answer_correct);radioBtn.setTextColor(ContextCompat.getColor(RadioButtonTextActivity.this, R.color.answer_green_dark));}});fanHuiBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.fanHuiBtn:Intent intent = new Intent(RadioButtonTextActivity.this, MyPointsActivity.class);startActivity(intent);break;default:break;}}});}@Overridepublic void onCheckedChanged(RadioGroup radioGroup, int i) {checkedId = i;radioBtn = findViewById(i);String str = radioBtn.getText().toString();switch (i) {case R.id.rbOption1:Toast.makeText(RadioButtonTextActivity.this, str, Toast.LENGTH_LONG).show();break;case R.id.rbOption2:break;case R.id.rbOption3:break;case R.id.rbOption4:break;default:break;}}
}

实现效果如下:

以上就是实现了简单的单选按钮的点击功能,至于CheckBox组件与单选组件类似,此处不再赘述。

android 简易我的积分页面、答题页面的设计相关推荐

  1. QAX答题页面js逆向分析(二)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过前端js解密,获取答案 二.通过Python,模拟请求完成自登录到答题的所有操作. 1.引入库 2. 程序结构 ...

  2. 基于Android Studio实现的集新闻页面+时钟页面+登录页面于一体的简单demo

    demo简介:三个主界面:新闻页面+时钟页面+登录页面,三个页面可以通过点击底部导航栏(总共三个导航栏,新闻.时间.我,未选中时是白色的,选中后是红色的)以及左右滑动进行页面切换. 新闻界面(该界面有 ...

  3. Android深入浅出系列之实例应用—手机页面之间的跳转

    在网页里,我们可以通过超级链接从一个网页跳转到另外一个网页,在手机里面,要如何实现手机页面之间的跳转呢? 原理:通过布局文件和setContentView()方法配合来实现.通过点击第一个布局文件ma ...

  4. Android 查看App冷启动时间/热启动时间/页面打开时间

    Android 查看App冷启动时间/热启动时间/页面打开时间 冷启动时间 热启动时间 页面打开时间 通过adb查看 adb shell am start -W packageName/Activit ...

  5. Java Web项目,Android和微信小程序的初始页面配置

    Java Web项目 我们在Eclipse里开了Java Web项目之后,Run As Tomcat或者Apache服务器,本地运行,如果直接用http://localhost:8080访问项目,会发 ...

  6. android 应用切换滑动,Android应用中利用ViewPager实现多页面滑动切换效果示例

    1.添加android support包因为上面的几个类都是在android support包中才提供,我们先添加包. 在Eclipse->Window->Android SDK Mana ...

  7. android实现新闻内容显示功能,Android开发实现自定义新闻加载页面功能实例

    本文实例讲述了Android开发实现自定义新闻加载页面功能.分享给大家供大家参考,具体如下: 一.概述: 1.效果演示: 2.说明:在新闻页面刚加载的时候,一般会出现五种状态 未知状态(STATE_U ...

  8. Android插件化——加载其他APP页面

    Android插件化--加载其他APP页面 1.分析 2.优点 3.详细过程 3.1 标准化加载接口 3.2待加载的APP-B 3.3 APP-A 主加载工程 3.3.1 加载工具类PlugManag ...

  9. Android studio包含四个tab微信页面设计

    Android studio包含四个tab微信页面设计 1.导入图标 新建一个project,然后将所需八个图标导入至app/res/drawable目录下任意的ic_launcher_xxxxx(复 ...

最新文章

  1. 量子位「MEET 2022智能未来大会」启动,邀你一起见证AI价值
  2. wxWidgets:wxTextOutputStream类用法
  3. 操作多个表_8_不等值连接
  4. python时间格式化代码_Python datetime格式化代码
  5. mongodb 排序_技术分享 | MongoDB 一次排序超过内存限制的排查
  6. 作为一个程序员,hibernate和jdbc 有什么不一样的点,你知道吗
  7. springmvc的运行原理个人见解
  8. [译] 在 Android 使用协程(part III) - 在实际工作中使用
  9. 【游戏引擎Easy2D】学C++还在面对黑框框?那是你没看这篇文,游戏引擎教会你
  10. QtableView点击滑动设计
  11. WPS Excel将多个Excel文件合并到一个Excel文件中(sheet)
  12. 什么是数据库的存储过程?
  13. 如何批量隔行删除Excel行
  14. usb接口芯片ft245bm的功能及其应用
  15. Python—遇到的问题,使用PyPDF2转化pdf时候遇到的各种问题。
  16. 推荐几款公众号写作必备工具
  17. vue-i18n的使用,前端实现中英文切换
  18. C++常用字符串string方法
  19. 有36匹马6个跑道,用最少比赛次数算出跑最快的前3匹马
  20. 星环科技分布式文件系统TDFS介绍(上)

热门文章

  1. MATLAB显示slic,quickshift超像素分割结果图
  2. python中语法错误-Python语法错误与异常及异常处理方法
  3. tomcat启动许多gc_tomcat gc问题总结
  4. [C++]char转换为string ,固定长度的char数组转换为string
  5. 小米蓝牙耳机和手机突然无法连接且不在通讯范围内
  6. Nature重磅综述 |关于RNA-seq,你想知道的都在这
  7. Word文字怎么复制粘贴
  8. 树链剖分——杨子曰算法
  9. IE10和IE9兼容性常见问题解答(FAQ)
  10. Python案例之QQ空间自动登录程序实现