20162311 编写Android程序测试查找排序算法

一、设置图形界面

因为是测试查找和排序算法,所以先要有一个目标数组。为了得到一个目标数组,我设置一个EditText和一个Button来添加数据

     <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="vertical"> <EditText
android:id="@+id/addData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="输入要添加的数据"></EditText> <Button
android:id="@+id/add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="添加数据" /> <TextView
android:id="@+id/dataArray"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""/> </LinearLayout>

采用垂直线性布局,EditText添加一个hint属性,提示用户添加数据,然后点击按钮即可把数据添加到数组中,后面的TextView用来显示数组中的元素。接下来又是一个EditText,用来让客户输入要查找的对象;之后是两个按钮,一个是查找,点击之后可以在目标数组中进行查找,一个是排序,点击之后会对目标数组进行排序,并把排序结果显示在后面的TextView中

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"> <EditText
android:id="@+id/target"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="输入要查找的目标"></EditText> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"> <Button
android:id="@+id/search"
android:layout_width="193dp"
android:layout_height="wrap_content"
android:text="查找" /> <Button
android:id="@+id/sort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="排序" />
</LinearLayout> <LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/searchText"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint=""/> <TextView
android:id="@+id/sortText"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint=""/> </LinearLayout>
</LinearLayout>

整体的布局采用了线性布局,其中又嵌套了线性布局,利用weight这个属性合理的分配空间。最后的结果如下

二、编写MainActivity

因为要用到之前实现的查找排序算法和一些相关的类,所以先把他们从IEDA中复制到Android项目里来

  • 设置变量,找到对应控件的id
private EditText addData,target;
private TextView dataArray,searchText,sortText;
private Button add,search,sort;
addData = (EditText) findViewById(R.id.addData);
target = (EditText) findViewById(R.id.target);
dataArray = (TextView)findViewById(R.id.dataArray);
searchText = (TextView)findViewById(R.id.searchText);
sortText = (TextView)findViewById(R.id.sortText);
add = (Button)findViewById(R.id.add);
search = (Button)findViewById(R.id.search);
sort = (Button)findViewById(R.id.sort);
  • 给对应的按钮设置监听器

首先是add按钮,它的功能是把第一个EditText中输入的数据存入数组中,然后把数组中的数据显示在下面的TextView中。其中start是一个整型变量,初始值为0,每添加一个元素自加一

add.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Integer dataText = Integer.getInteger(addData.getText().toString());
data[start] = dataText;
start++;
String result = "";
for(int i:data)
result += i+" "; dataArray.setText(result);
}
});

然后设置search按钮,它的功能是接收第二个EditText中的数据,作为查找目标,然后调用查找方法进行查找,并把结果显示在下面的TextView中。我这里是以数表查找为例

search.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
int targetext = Integer.getInteger(target.getText().toString());
int result = NewSearching.treeSearch(data,targetext);
searchText.setText("查找结果为:"+ result);
}
});

最后是sort按钮,用来对目标数组进行排序,然后把排序结果显示在下面的TextView中,我这里以二叉树排序为例

sort.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
NewSorting.binaryTreeSort(data);
String result = "排序结果:\n";
for (int s: data)
result += s+"\n";
sortText.setText(result);
}
});

三、测试结果截图

20162311 编写Android程序测试查找排序算法的更多相关文章

  1. 用Eclipse编写Android程序的代码提示功能

    用Eclipse编写Android程序的代码提示功能主要是在java和xml文件中,有时候会失效,默认的提示功能有限. 1)java文件自动提示     Window->Preferences- ...

  2. Visual Studio 开始支持编写 Android 程序并自带 Android 模拟器【转载】

    原文地址 本文内容 为什么需要一个 Android 模拟器 针对 Visual Studio Android 模拟器的调试 Visual Studio Android 模拟器的传感器模拟和其他功能 A ...

  3. Android程序测试

    一.建立测试环境 安装了Android Developer Tools (ADT) 插件的Eclipse将为你创建,构建,以及运行Android程序提供一个基于图形界面的集成开发环境.Eclipse的 ...

  4. java小程序整理及排序算法

    1. 利用循环打印如下图形 ***** **** *** ** * public class Main { public static void main(String[] args) { // TO ...

  5. 剑指offer 查找和排序的基本操作:查找排序算法大集合

    重点 查找算法着重掌握:顺序查找.二分查找.哈希表查找.二叉排序树查找. 排序算法着重掌握:冒泡排序.插入排序.归并排序.快速排序. 顺序查找 算法说明 顺序查找适合于存储结构为顺序存储或链接存储的线 ...

  6. c#(控制台应用程序)实现排序算法的研究总结

    前言:闲来无事,便研究起来对数组的排序算法,怕过后遗忘,特地总结一下,也希望能帮到大家 概要:  总结的算法: 冒泡排序.插入排序.选择排序 要排序的一列数(从小到大): 1, 5, 3, 83, 4 ...

  7. [转]eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法

    原网址 : http://www.cnblogs.com/zdz8207/archive/2012/11/30/eclipse-android-adt-update.html 网上解决方法主要有这几种 ...

  8. 用Xamarin + VS 编写Android程序体验及其与Android Studio的比较

    昨天看了微软2016Build大会,Xamarin免费了.恩,5亿美刀的家伙,哈哈,我也要体验一下..... 1. 首先在Xamarin官网下载安向导:https://www.xamarin.com/ ...

  9. 用eclipse编写Android程序时怎样生成apk文件

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/16828449 APK是Android Package的缩写,即Android安装包.通过将 ...

随机推荐

  1. Django的URL name 学习

    1.打开工程文件下的url.py: from django.contrib import admin from django.urls import path from django.conf.url ...

  2. POJ_3264_Balanced Lineup

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 57259   Accepted: 26831 ...

  3. ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解

    感谢一路走来默默陪伴和支持的你~~~ -------------------欢迎来访,拒绝转载------------------- 在之前的利用Python分析GP服务运行结果的输出路径 & ...

  4. 一个JS Class的“增删改查”

    function AA (){ var r={}; this.get = function(key){ return r[key]; } this.put = function(key,x){ r[k ...

  5. 洛谷P3953 逛公园 [noip2017] 图论+dp

    正解:图论(最短路)+dp(记忆化搜索) 解题报告: 这题真的是个好东西! 做了这题我才发现我的dij一直是错的...但是我以前用dij做的题居然都A了?什么玄学事件啊...我哭了TT 不过其实感觉还 ...

  6. 如何设置dedecms自定义表单必填项?

    用dedecms自定义表单可以制作一个简单的预约系统,有些相关信息需要设置为必填项,比如联系方式,没有留下真实的电话或其他信息,以后要怎么联系到你的客户.那我们要如何设置织梦cms自定义表单必填项呢? ...

  7. visual studio code 编辑器的配置及快捷键等, vscode, csc

    visual studio code (vsc) 对开发node.js,javascript,python,html,golang等比较友好,同时支持git浏览及分屏对比,运行速度快,所以是值得一用的 ...

  8. Spark Core(四)用LogQuery的例子来说明Executor是如何运算RDD的算子(转载)

    1. 究竟是怎么运行的? 很多的博客里大量的讲了什么是RDD, Dependency, Shuffle.......但是究竟那些Executor是怎么运行你提交的代码段的? 下面是一个日志分析的例子, ...

  9. [kx]人眼结构&凹/凸透镜成像及生活应用

    物理学中的lamba光谱: http://www.cnblogs.com/iiiiiher/diary/2018/04/05/8724339.html 思路: 电磁光谱-->可见光-->人 ...

  10. 实习培训——Java基础(4)

    实习培训——Java基础(4) 1 多态 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作,多态性是对象多种表现形式的体现. 现实中,比如我们按下 ...