脑筋急转弯在线问答

本文详细展示了如何在网页中实现脑筋急转弯管理页面,包括表单搜索、数据表格展示以及操作功能,如编辑和删除。涉及到了页面布局、数据绑定和数据库表结构的设计。
摘要由CSDN通过智能技术生成

页面效果

在这里插入图片描述
点击“显示答案”按钮,显示参考答案。

页面代码

<% layout('/layouts/default.html', {title: '脑筋急转弯管理', libs: ['dataGrid']}){ %>
<div class="main-content">
	<div class="box box-main">
		<div class="box-header">
			<div class="box-title">
				<i class="fa icon-notebook"></i> ${text('脑筋急转弯管理')}
			</div>
			<div class="box-tools pull-right">
				<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
				<% if(hasPermi('question:question:edit')){ %>
					<a href="${ctx}/question/question/form" class="btn btn-default btnTool" title="${text('新增脑筋急转弯')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
				<% } %>
				<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
			</div>
		</div>
		<div class="box-body">
			<#form:form id="searchForm" model="${question}" action="${ctx}/question/question/listData" method="post" class="form-inline hide"
					data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
				<div class="form-group">
					<label class="control-label">${text('问题')}:</label>
					<div class="control-inline">
						<#form:input path="questionContent" maxlength="45" class="form-control width-120"/>
					</div>
				</div>
				<div class="form-group">
					<label class="control-label">${text('答案')}:</label>
					<div class="control-inline">
						<#form:input path="questionAnswer" maxlength="45" class="form-control width-120"/>
					</div>
				</div>
				<div class="form-group">
					<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
					<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
				</div>
			</#form:form>
			<table id="dataGrid"></table>
			<div id="dataGridPage"></div>
		</div>
	</div>
</div>
<% } %>
<script>
    function showAnswer(element){
        $(element).next().show()

    }
//# // 初始化DataGrid对象
$('#dataGrid').dataGrid({
	searchForm: $('#searchForm'),
	columnModel: [
		{header:'${text("问题")}', name:'questionContent', index:'a.question_content', width:150, align:"left", frozen:true, formatter: function(val, obj, row, act){
			return '<a href="${ctx}/question/question/form?questionId='+row.questionId+'" class="btnList" data-title="${text("编辑脑筋急转弯")}">'+(val||row.id)+'</a>';
		}},
		{header:'${text("答案")}', name:'questionAnswer', index:'a.question_answer', width:150, align:"left", formatter: function(val, obj, row, act){
                return '<button οnclick="showAnswer(this)">显示答案</button><span style="display: none">'+row.questionAnswer+'</span>';

            }},
		{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
			var actions = [];
			//# if(hasPermi('question:question:edit')){
				actions.push('<a href="${ctx}/question/question/form?questionId='+row.questionId+'" class="btnList" title="${text("编辑脑筋急转弯")}"><i class="fa fa-pencil"></i></a>&nbsp;');
				actions.push('<a href="${ctx}/question/question/delete?questionId='+row.questionId+'" class="btnList" title="${text("删除脑筋急转弯")}" data-confirm="${text("确认要删除该脑筋急转弯吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
			//# }
			return actions.join('');
		}}
	],
	//# // 加载成功后执行事件
	ajaxSuccess: function(data){
		
	}
});
</script>

数据库表

CREATE TABLE `question` (
  `question_id` int NOT NULL AUTO_INCREMENT COMMENT '编号',
  `question_content` varchar(45) COLLATE utf8mb4_cs_0900_ai_ci DEFAULT NULL COMMENT '问题',
  `question_answer` varchar(45) COLLATE utf8mb4_cs_0900_ai_ci DEFAULT NULL COMMENT '答案',
  PRIMARY KEY (`question_id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_cs_0900_ai_ci COMMENT='脑筋急转弯';

question_id,question_content,question_answer
1,什么东西天天往上升,永远也掉不下来,你的年龄
2,桌上有5只苍蝇,打死1只,桌上还剩几只呢?,就剩打死的那一只
3,什么东西比乌鸦更讨厌?,乌鸦嘴
4,你用什么办法能将一个鸡蛋从5米的高空中摔下来而不会摔破?,从6米的高空扔下来,在离地面1米的地方接住它
5,现在地球上最大的动物是大海里的鲸鱼,那么第二大的动物是什么?,小鲸鱼
6,一个盒子最少有几个边?,里边和外边
7,什么话可以一语道破天机?,天气预报
8,什么时候10加3会等于1?,算时间的时候。13点等于下午1点钟。
9,青蛙和狗参加游泳比赛,为什么青蛙在水里游不过狗?,比赛禁止蛙泳
10,楚楚的生日是3月30日,请问是哪年的3月30日?,每年的3月30日
11,我不会轻功,但一只脚搭在鸡蛋上,鸡蛋却不会破,这是为什么?,另外一只脚踩在地面上

  • 28
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: RecyclerView是一个强大的Android控件,可以用于实现各种列表和网格视图。要实现脑筋急转弯,可以使用RecyclerView来显示问题和答案列表。可以创建一个自定义的RecyclerView适配器来填充问题和答案数据,然后将其与RecyclerView关联。还可以添加一些动画效果来使UI更加生动。此外,可以使用RecyclerView的布局管理器来控制列表的布局方式,例如垂直或水平布局。 ### 回答2: RecyclerView 是 Android 系统中常用的视图控件,它基于可复用的视图来显示数据集合。相比于 ListView,RecyclerView 具有更高的灵活性和扩展性,因此在实现一些复杂的需求时非常实用。 如果要用 RecyclerView 实现一个脑筋急转弯游戏,可以按照以下几个步骤进行: 1. 界面设计 首先,需要确认游戏的界面设计。可以采用 RecyclerView 布局实现一个类似于卡片的列表,每个卡片上显示题目和选项,并提供一个提交按钮供用户提交答案。在用户提交答案后,需要显示用户的得分和正确答案。 2. 数据准备 为了显示题目和选项,需要准备好数据。可以将题目和选项封装成一个 Question 对象,然后将 Question 对象放入一个 List 中,作为 RecyclerView 的数据集合。 3. 类和布局文件的创建 创建 Question 类,用于封装题目和选项等数据。然后创建 RecyclerView 的布局文件,包括卡片的布局和卡片中的控件,例如文本框和按钮等。 4. 设置RecyclerView的适配器 创建一个 RecyclerView 的适配器类,用于将 List 中的 Question 对象绑定到 RecyclerView 中的每个卡片上。在适配器类中,需要实现 onCreateViewHolder、onBindViewHolder 和 getItemCount 等方法。 5. 设置RecyclerView的布局管理器和分隔线 为了让 RecyclerView 正常工作,需要为其设置布局管理器和分隔线等属性。可以使用 LinearLayoutManager 作为布局管理器,并设置垂直方向。 6. 实现提交逻辑,并显示答案和得分 在用户点击提交按钮时,需要处理提交逻辑。可以遍历 List 中的 Question 对象,并检查用户选择的答案是否正确。然后计算得分,并将得分和正确答案显示在界面上。 7. 实现翻页 为了让游戏更加有趣,可以设置下一页按钮,用于翻页到下一题。当用户点击下一页按钮时,可以切换到下一个 Question 对象,并更新界面上的题目和选项等信息。 总结来说,使用 RecyclerView 实现脑筋急转弯游戏需要做好数据准备、界面设计、类和布局文件的创建等工作,还需要设置 RecyclerView 的适配器、布局管理器和分隔线等属性,最后还需要实现提交逻辑、显示答案和得分,以及实现翻页等功能,这样才能让游戏更加有趣、丰富。 ### 回答3: 随着移动应用的发展,列表作为常见的UI元素已经成为了设计中的必备部分。为了更好地呈现数据和增强用户体验,RecyclerView的适配器和布局管理器为我们提供了更灵活的选择。在本文中,我们将使用RecyclerView来实现一个脑筋急转弯游戏,通过这个例子来展示RecyclerView的使用。 首先,我们需要定义要在列表中显示的数据。为了更好地封装数据,我们可以创建一个自定义的Java类来表示每个脑筋急转弯问题,该类至少应包含一个问题和答案。 在activity_main.xml文件中,我们将使用RecyclerView作为容器来承载每个脑筋急转弯问题的列表。要使用RecyclerView,我们需要将其引入布局中并定义一些必要的属性: ``` xml <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" android:layout_marginTop="?attr/actionBarSize" /> ``` 接下来,我们需要为RecyclerView创建适配器,以便RecyclerView可以根据提供的数据动态更新列表中的视图。由于我们需要显示一列表示问题和答案的对应关系,因此我们需要定义一个自定义适配器来承载我们的数据列表。我们应该声明一个类,它扩展自RecyclerView.Adapter并在内部定义我们的自定义ViewHolder类。 对于ViewHolder类,我们需要扩展RecyclerView.ViewHolder,并在其中声明列表视图中需要显示的视图。在我们的例子中,我们需要一个TextView来显示问题和答案。自定义ViewHolder类如下所示: ``` java public class CustomViewHolder extends RecyclerView.ViewHolder { public TextView textView; public CustomViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.text); } } ``` 在适配器类中,我们需要实现Recycler.Adapter的三个方法:onCreateViewHolder,onBindViewHolder和getItemCount。在onCreateViewHolder方法中,我们需要创建一个新的ViewHolder,并返回它。然后,在onBindViewHolder方法中,我们可以使用数据填充ViewHolder视图。在onBindViewHolder方法中,我们可以根据位置获取数据并使用它填充列表项的视图。在getItemCount方法中,我们应该返回需要在列表中显示的项数。 ``` java public class CustomAdapter extends RecyclerView.Adapter<CustomViewHolder> { private List<BrainTeaser> list; public CustomAdapter(List<BrainTeaser> list) { this.list = list; } @Override public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_item, parent, false); return new CustomViewHolder(itemView); } @Override public void onBindViewHolder(CustomViewHolder holder, int position) { BrainTeaser brainTeaser = list.get(position); holder.textView.setText(brainTeaser.getQuestion() + " = " + brainTeaser.getAnswer()); } @Override public int getItemCount() { return list.size(); } } ``` 接下来,我们需要将适配器关联到RecyclerView上,以便RecyclerView可以使用我们提供的适配器来动态更新列表视图。我们应该在MainActivity中创建一个实例并设置给RecyclerView: ``` java CustomAdapter adapter = new CustomAdapter(brainTeasers); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext()); recyclerView.setLayoutManager(layoutManager); recyclerView.setItemAnimator(new DefaultItemAnimator()); recyclerView.setAdapter(adapter); ``` 最后,我们需要提供一些样本数据来测试RecyclerView是否正常工作。我们可以通过从数据库或网络中获取数据,或者像下面这样为每个脑筋急转弯创建一个BrainTeaser对象: ``` java List<BrainTeaser> brainTeasers = new ArrayList<>(); brainTeasers.add(new BrainTeaser("1+2+3", "6")); brainTeasers.add(new BrainTeaser("4+5+6", "15")); brainTeasers.add(new BrainTeaser("7+8+9", "24")); ``` 通过这个简单的例子,我们可以看到RecyclerView在移动应用中的重要性和灵活性。通过使用RecyclerView,我们可以构建更快、更平稳的用户体验,提高用户满意度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值