android 简易我的积分页面、答题页面的设计
一、我的积分页面设计
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 简易我的积分页面、答题页面的设计相关推荐
- QAX答题页面js逆向分析(二)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过前端js解密,获取答案 二.通过Python,模拟请求完成自登录到答题的所有操作. 1.引入库 2. 程序结构 ...
- 基于Android Studio实现的集新闻页面+时钟页面+登录页面于一体的简单demo
demo简介:三个主界面:新闻页面+时钟页面+登录页面,三个页面可以通过点击底部导航栏(总共三个导航栏,新闻.时间.我,未选中时是白色的,选中后是红色的)以及左右滑动进行页面切换. 新闻界面(该界面有 ...
- Android深入浅出系列之实例应用—手机页面之间的跳转
在网页里,我们可以通过超级链接从一个网页跳转到另外一个网页,在手机里面,要如何实现手机页面之间的跳转呢? 原理:通过布局文件和setContentView()方法配合来实现.通过点击第一个布局文件ma ...
- Android 查看App冷启动时间/热启动时间/页面打开时间
Android 查看App冷启动时间/热启动时间/页面打开时间 冷启动时间 热启动时间 页面打开时间 通过adb查看 adb shell am start -W packageName/Activit ...
- Java Web项目,Android和微信小程序的初始页面配置
Java Web项目 我们在Eclipse里开了Java Web项目之后,Run As Tomcat或者Apache服务器,本地运行,如果直接用http://localhost:8080访问项目,会发 ...
- android 应用切换滑动,Android应用中利用ViewPager实现多页面滑动切换效果示例
1.添加android support包因为上面的几个类都是在android support包中才提供,我们先添加包. 在Eclipse->Window->Android SDK Mana ...
- android实现新闻内容显示功能,Android开发实现自定义新闻加载页面功能实例
本文实例讲述了Android开发实现自定义新闻加载页面功能.分享给大家供大家参考,具体如下: 一.概述: 1.效果演示: 2.说明:在新闻页面刚加载的时候,一般会出现五种状态 未知状态(STATE_U ...
- Android插件化——加载其他APP页面
Android插件化--加载其他APP页面 1.分析 2.优点 3.详细过程 3.1 标准化加载接口 3.2待加载的APP-B 3.3 APP-A 主加载工程 3.3.1 加载工具类PlugManag ...
- Android studio包含四个tab微信页面设计
Android studio包含四个tab微信页面设计 1.导入图标 新建一个project,然后将所需八个图标导入至app/res/drawable目录下任意的ic_launcher_xxxxx(复 ...
最新文章
- 量子位「MEET 2022智能未来大会」启动,邀你一起见证AI价值
- wxWidgets:wxTextOutputStream类用法
- 操作多个表_8_不等值连接
- python时间格式化代码_Python datetime格式化代码
- mongodb 排序_技术分享 | MongoDB 一次排序超过内存限制的排查
- 作为一个程序员,hibernate和jdbc 有什么不一样的点,你知道吗
- springmvc的运行原理个人见解
- [译] 在 Android 使用协程(part III) - 在实际工作中使用
- 【游戏引擎Easy2D】学C++还在面对黑框框?那是你没看这篇文,游戏引擎教会你
- QtableView点击滑动设计
- WPS Excel将多个Excel文件合并到一个Excel文件中(sheet)
- 什么是数据库的存储过程?
- 如何批量隔行删除Excel行
- usb接口芯片ft245bm的功能及其应用
- Python—遇到的问题,使用PyPDF2转化pdf时候遇到的各种问题。
- 推荐几款公众号写作必备工具
- vue-i18n的使用,前端实现中英文切换
- C++常用字符串string方法
- 有36匹马6个跑道,用最少比赛次数算出跑最快的前3匹马
- 星环科技分布式文件系统TDFS介绍(上)