android浏览器源代码
https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=62&c=apzrou https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=61&c=akkahk https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=60&c=zhhsor https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=59&c=4ukha8 https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=58&c=lgg60m https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=57&c=ymgm3m https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=56&c=n5zhht https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=55&c=huukbh https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=54&c=8yrc1c https://www.doczj.com/doc/6c8112545.html,/bbs/home.php?mod=invite&id=53&c=stf115
package com.explorer;
import static com.mime.MIME.MIME_MapTable;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.util.ArrayList;
import java.util.Arrays;
import https://www.doczj.com/doc/6c8112545.html,parator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent;
import https://www.doczj.com/doc/6c8112545.html,.Uri;
import android.os.Bundle;
import android.os.Environment; import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import https://www.doczj.com/doc/6c8112545.html,youtInflater; import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.file.R;
public class MainActivity extends Activity implements OnClickListener, OnItemClickListener, OnItemLongClickListener { private TextView currentDir;
private Button btnC;
private Button btnE;
private ListView listView;
private File rootDir;
private File copyPath;
private String flag;
private String startFilePath;
private String desFilePath;
private List fileList = new ArrayList();
private ProgressDialog progressDialog;
private int currentLen = 0;
private long totaLength = 0;
private Handler messageHandler;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(https://www.doczj.com/doc/6c8112545.html,yout.main);
currentDir = (TextView) findViewById(R.id.currentDir);
// fileName = (TextView) findViewById(https://www.doczj.com/doc/6c8112545.html,);
btnC = (Button) findViewById(R.id.btnC);
btnE = (Button) findViewById(R.id.btnE);
btnC.setOnClickListener(this);
btnE.setOnClickListener(this);
listView = (ListView) findViewById(R.id.listView);
listView.setOnItemClickListener(this);
listView.setOnItemLongClickListener(this);
//得到当前线程的Looper实例,由于当前线程是UI线程也可以通过Looper.getMainLooper()得到messageHandler = new MessageHandler(Looper.myLooper());
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { rootDir = Environment.getExternalStorageDirectory();
} else {
rootDir = Environment.getRootDirectory();
}
loadFiles(rootDir);
}
//自定义Handler
class MessageHandler extends Handler {
public MessageHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
loadFiles(new File(currentDir.getText().toString()));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.newFile) {
LayoutInflater factory = LayoutInflater.from(MainActivity.this);
final View view = factory.inflate(https://www.doczj.com/doc/6c8112545.html,yout.rename, null);
AlertDialog d = new AlertDialog.Builder(MainActivity.this).setCancelable(true).setMessage("文件夹名") .setView(view).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String dirName = ((EditText) view.findViewById(R.id.rename)).getText().toString();
String newFile = currentDir.getText().toString() + "/" + dirName;
if (new File(newFile).exists()) {
Toast.makeText(MainActivity.this, "文件夹已存在", Toast.LENGTH_LONG).show();
return;
}
File f = new File(currentDir.getText().toString(), dirName);
f.mkdir();
}
}).create();
d.show();
} else if (item.getItemId() == R.id.about) {
Dialog d = new AlertDialog.Builder(MainActivity.this).setTitle("文件浏览器1.0beta").setMessage("本程序由劲松Alex制作") .setPositiveButton("确定", null).create();
d.show();
} else if (item.getItemId() == R.id.exit) {
MainActivity.this.finish();
}
return true;
}
/**
* 加载当前文件夹列表
* */
public void loadFiles(File dir) {
List> list = new ArrayList>();
if (dir != null) {
// 处理上级目录
if (!dir.getAbsolutePath().equals(rootDir.getAbsolutePath())) {
Map map = new HashMap();
map.put("file", dir.getParentFile());
map.put("name", "上一级目录");
map.put("img", R.drawable.folder);
list.add(map);
}
currentDir.setText(dir.getAbsolutePath());
File[] files = dir.listFiles();
sortFiles(files);
if (files != null) {
for (File f : files) {
Map map = new HashMap();
map.put("file", f);
map.put("name", f.getName());
map.put("img", f.isDirectory() ? R.drawable.folder
: (f.getName().toLowerCase().endsWith(".zip") ? R.drawable.zip : R.drawable.text));
list.add(map);
}
}
} else {
Toast.makeText(this, "目录不正确,请输入正确的目录!", Toast.LENGTH_LONG).show();
}
ListAdapter adapter = new SimpleAdapter(this, list, https://www.doczj.com/doc/6c8112545.html,yout.item, new String[] { "name", "img" }, new int[] {
https://www.doczj.com/doc/6c8112545.html,, R.id.icon });
// listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(adapter);
}
/**
* 排序文件列表
* */
private void sortFiles(File[] files) {
Arrays.sort(files, new Comparator() {
public int compare(File file1, File file2) {
if (file1.isDirectory() && file2.isDirectory())
return 1;
if (file2.isDirectory())
return 1;
return -1;
}
});
}
/**
* 打开文件
*
* @param file
*/
private void openFile(File file) {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// 设置intent的Action属性
intent.setAction(Intent.ACTION_VIEW);
// 获取文件file的MIME类型
String type = getMIMEType(file);
// 设置intent的data和Type属性。
intent.setDataAndType(Uri.fromFile(file), type);
// 跳转
startActivity(intent);
}
/**
* 根据文件后缀名获得对应的MIME类型。
*
* @param file
*/
private String getMIMEType(File file) {
String type = "*/*";
String fName = file.getName();
// 获取后缀名前的分隔符"."在fName中的位置。
int dotIndex = https://www.doczj.com/doc/6c8112545.html,stIndexOf(".");
if (dotIndex < 0) {
return type;
}
/* 获取文件的后缀名*/
String end = fName.substring(dotIndex, fName.length()).toLowerCase();
if (end == "")
return type;
// 在MIME和文件类型的匹配表中找到对应的MIME类型。
for (int i = 0; i < MIME_MapTable.length; i++) {
if (end.equals(MIME_MapTable[i][0]))
type = MIME_MapTable[i][1];
}
return type;
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btnC) {
rootDir = Environment.getRootDirectory();
loadFiles(rootDir);
} else if (v.getId() == R.id.btnE) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { rootDir = Environment.getExternalStorageDirectory();
loadFiles(rootDir);
}
}
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) { Map map = (Map) parent.getItemAtPosition(position);
final File file = (File) map.get("file");
if (file.isDirectory()) {
try {
loadFiles(file);
} catch (Exception e) {
Toast.makeText(this, "权限不足", Toast.LENGTH_SHORT).show();
}
} else {
openFile(file);
}
}
@Override
public boolean onItemLongClick(AdapterView> parent, View view, int position, long id) { Map map = (Map) parent.getItemAtPosition(position);
final File file = (File) map.get("file");
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle("操作")
.setItems(new String[] { "复制", "剪切", "粘贴", "发送", "重命名", "删除", "属性" },
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
copyPath = new File(file.getAbsolutePath());
flag = "copy";
break;
case 1:
copyPath = new File(file.getAbsolutePath());
flag = "cut";
break;
case 2:
final String startPath = copyPath.getAbsolutePath();
final String desPath = currentDir.getText().toString() + "/" + copyPath.getName();
File[] files = new File(currentDir.getText().toString()).listFiles();
for (File file : files) {
if (copyPath.getName().equals(file.getName())) {
Toast.makeText(MainActivity.this, "此文件/文件夹已存在", Toast.LENGTH_SHORT).show();
return;
}
}
int length = (int) (getLength(copyPath) / (1024));
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("正在复制");
progressDialog.setMax(length);
progressDialog.setProgress(0);
progressDialog.setCancelable(false);
progressDialog.show();
new Thread() {
public void run() {
copy(startPath, desPath);
//通过Message对象向原线程传递信息
Message message = Message.obtain();
messageHandler.sendMessage(message);
progressDialog.dismiss();
// 如果为剪切则删除对应文件/文件夹
if ("cut".equals(flag)) {
if (copyPath.isFile()) {
copyPath.delete();
} else {
List delDirs = delete(copyPath);
for (int i = delDirs.size() - 1; i >= 0; i--) {
delDirs.get(i).delete();
}
}
}
}
}.start();
break;
case 3:
break;
case 4:
LayoutInflater factory = LayoutInflater.from(MainActivity.this);
final View view = factory.inflate(https://www.doczj.com/doc/6c8112545.html,yout.rename, null);
((EditText) view.findViewById(R.id.rename)).setText(file.getName());
AlertDialog d = new AlertDialog.Builder(MainActivity.this).setCancelable(true)
.setMessage("新文件名").setView(view)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String newName = ((EditText) view.findViewById(R.id.rename))
.getText().toString();
String newFile = currentDir.getText().toString() + "/" + newName;
if (new File(newFile).exists()) {
Toast.makeText(MainActivity.this, "文件名重复", Toast.LENGTH_LONG)
.show();
return;
}
file.renameTo(new File(newFile));
}
}).create();
d.show();
loadFiles(new File(currentDir.getText().toString()));
break;
case 5:
AlertDialog ad = new AlertDialog.Builder(MainActivity.this)
.setMessage("确实要删除" + file.getName() + "吗?").setCancelable(true)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (file.isFile()) {
file.delete();
} else {
List delDirs = delete(file);
for (int i = delDirs.size() - 1; i >= 0; i--) {
delDirs.get(i).delete();
}
}
loadFiles(new File(currentDir.getText().toString()));
};
}).create();
ad.show();
break;
default:
break;
}
Toast.makeText(MainActivity.this, "" + which, Toast.LENGTH_LONG).show();
}
}).create();
dialog.show();
/*
* Intent data=new Intent(); data.putExtra("path",
* file.getAbsolutePath()); this.setResult(RESULT_OK,data);
* this.finish();
*/
return true;
}
/**
* 返回删除文件后的空文件夹列表
* */
public List delete(File delFile) {
if (delFile.isFile()) {
delFile.delete();
} else if (delFile.isDirectory()) {
fileList.add(delFile);
File[] files = delFile.listFiles();
for (File file : files) {
delete(file);
}
}
return fileList;
}
/**
* 获取文件/文件夹大小
* */
private long getLength(File file) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File file2 : files) {
totaLength = totaLength + getLength(file2);
}
} else {
totaLength = totaLength + file.length();
}
return totaLength;
}
/**
* 复制功能,startFilePath为文件源路径,desFilePath为目的路径* */
public boolean copy(String startFilePath, String desFilePath) {
currentLen = 0;
totaLength = 0;
this.startFilePath = startFilePath;
this.desFilePath = desFilePath;
// 判断是否返回成功的变量
boolean copyFinished = false;
File startFile = new File(startFilePath);
File desFile = new File(desFilePath);
// 如果源文件是个文件
if (startFile.isFile()) {
copyFinished = this.copySingleFile(startFile, desFile);
// 如果源文件是个文件夹,就需要递归复制
} else {
// 如果目标文件夹是源文件夹的一个子目录的情况,拒绝复制,因为会造成无限循环
if (desFilePath.startsWith(startFilePath)) {
System.out.println("error copy");
安卓计算机源代码 Mxl代码 Android计算器源码 计算器源码 Java程序代码: package ymq.demo03; import android.app.Activity; import android.os.Bundle; import android.view.*; import android.widget.*; public class demo03 extends Activity { /** Called when the activity is first created. */ String str=""; EditText et; int c=0,flag=0; double b=0.0,g=0.0,f=0.0; View vi; public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub menu.add(0, 1, 1, "退出"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub if(item.getItemId()==1){finish();} return super.onOptionsItemSelected(item); } //计算方法 public double calculater(){ switch(c){ case 0:f=g;break; case 1:f=b+g;break; case 2:f=b-g;break; case 3:f=b*g;break; case 4:f=b/g;break; } b=f;
基于Android的手机计步器的设计与实现源代码 基于A n d r o i d的手机计步器的设计与实现源 代码 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
专业工程综合实训设计报告
目录
第一章绪论 课题的背景及意义 当今社会,手机已经成为人们工作生活中必不可少的一项通讯和娱乐工具,随着手机的不断更新,手机的各种高层服务和应用层出不穷。现在智能手机可谓是爆发式增长,与此同时传统手机在不断地消失,诺基亚就是在这样的环境中受到了重创。现在主要有三个使用率和关注度最高的手机平台,分别是:Android,ios和windows phone平台,在这三个平台中Android的占有率最高。自2007年11月Google公司发布Android系统以来,短短几年时间,Android已经占据了智能手机市场的半壁江山,成为目前最为炙手可热的智能手机操作系统。Android走进了越来越多人的生活,成为他们获取信息的主要平台。 Android平台对于Google和用户的意义不在于手机本身,而在于为了推动移动互联网产业链的迅速成型。具有开源性的Android手机平台与之前Symbian、windows mobile等操作系统不同,它们收取高额的授权费用,而Android不需要,这样使得应用开发成本大大降低;也正是由于它的源代码是开放的,使得开发者可以随心所欲的开发应用。同时,手机生产商和软件开发商也能够在这里得到利润,手机软件得到有效的维护协调发展。这正是Google发布Android平台的意义,也是Android平台的使命所在。 同时目前搭载Android平台的应用有很多,但针对传感器而开发的应用市场上还不多见。本应用正是针对Android手机内置的加速度传感器而特别设计的应用。所以鉴于移动端应用开发是目前软件开发行业正在兴起并会越来越炙手可热的一个分支,并且针对传感器的开发相对空白我选择了研究此课题。 系统框架 在设计一款软件时一般都会把它分成几个模块,在模块的基础上还会再分小模块,这样就达到了软件模块化设计的要求,然后再对各个小模块进行详细设计和编写,采用模块化的管理方式可以使软件结构更清晰,也使得软件的管理更有秩序,使别人容易理解和阅读,但是这些模块也要根据别的模块来设计和约束,不能随便设计脱离框架,设计完成后需要把每个设计完成的模块根据总体框架结合起来。 根据本软件的功能需求,将本软件分为以下几个功能模块,如图 1-1所示:
安卓日历开发源代码 android开发——简易计算器的设计报告 简易计算机的设计 摘要:Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。 一、实训目的 1、了解Android系统,学会Android开发环境的搭建。 2、了解E clipse,学会用E clipse和Java 开发一个Android程序。 3、进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。 4、巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。 二、实训任务 1、Activity的相关知识 简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。Activity是最基本的Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。 (1)Activity的相关方法及相关函数:void onCreate(Bundle)首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息);void onStart() 说明了将要显示给用户的活动;void onRestart()将处于停止状态的活动重新显示给用户;void onResume()用户可以开始与活动进行交互时
android开发计算器课程设计样本 Android应用程序开发 实验报告 学号: 学生姓名:冯会会 指引教师:齐兵辉 提交时间: .11.10
目录 第一章系统分析与设计..................................................................................... 错误!未定义书签。 1.1系统可行性分析............................................................................................. 错误!未定义书签。 1.2系统需求分析 ................................................................................................ 错误!未定义书签。第二章系统详细设计 ........................................................................................ 错误!未定义书签。 2.1 ACTIVITY详细设计............................................................................................. 错误!未定义书签。 2.2 XML文献详细设计........................................................................................... 错误!未定义书签。第三章测试运营及总结..................................................................................... 错误!未定义书签。 3.1界面截图 ........................................................................................................ 错误!未定义书签。 3.2运营界面截图 ................................................................................................ 错误!未定义书签。 3.3运营成果截图................................................................................................. 错误!未定义书签。 3.4总结 ................................................................................................................ 错误!未定义书签。
android简单计算器代码 package hua.xing.demo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class CalculatordemoActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ private Button but0 = null; private Button but1 = null; private Button but2 = null; private Button but3 = null; private Button but4 = null; private Button but5 = null; private Button but6 = null; private Button but7 = null; private Button but8 = null; private Button but9 = null; private Button dim = null; private Button add = null; private Button sub = null; private Button mult = null; private Button div = null; private Button equ = null; private EditText etext = null; private double value = 0;
Android项目-计算器(DOC) 学校代码: 10128 学号: 课程设计说明书 题目:移动版计算器 学生姓名: 学院:信息工程学院 班级:计12-1班 指导教师:庄旭菲 2015 年 7 月
目录 第一章总体功能介绍 0 1.1功能介绍 0 1.2软件设计 0 1.2.1系统软件的结构图 0 1.2.2功能的操作流程 0 1.2.3计算器模块 (1) 第二章各功能模块的具体实现 (2) 2.1系统主界面 (2) 2.2基本加减乘除界面 (9) 2.3其他运算界面 (1) 第三章调试及运算结果 (7) 3.1加法运算结果 (7) 3.2减法运算结果 (8) 3.3乘法运算结果 (8) 3.4除法运算结果 (8) 3.5带括号运算结果 (9) 3.6复合运算结果 (9) 第四章总结 (9)
摘要:Android是当今最重要的手机开发的平台之一,它是建立在Java基础上的,能够迅速建立手机软件的解决方案。Android的功能十分强大。成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、用户界面和应用软件组成,具有以下特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。
第一章总体功能介绍 1.1功能介绍 计算器软件的系统功能介绍: (1)实现简单的要实现基本的加、减、乘、除四则运算。 (2)可以实现在前一步计算结果上继续作加、减、乘、除,即连加、减、乘、除。 (3)有清空功能,即清除所有数据,重新开始计算。 (4)拥有后退按键,可以实现清除单个错误数据。 (5)可以实现复合运算。 1.2软件设计 1.2.2功能的操作流程 首先用户根据自己的实际需要选择计算,得出程序结果,输入数据,选择运算符号,再输入数据,选择等号,即可以得出结果。
安卓开发的自制计算器源代码 这是本人自己用安卓编写的计算器,代码的优化可能有所问题,不过大家都在学习阶段,欢迎大家批评指正,还是上源码吧。 先来运行图 package com.example.nanchen.exam_1_1; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button btn0; private Button btn1;
private Button btn2; private Button btn3; private Button btn4; private Button btn5; private Button btn6; private Button btn7; private Button btn8; private Button btn9; private Button btnAdd; private Button btnSub; private Button btnMul; private Button btnDiv; private Button btnDec; private Button btnEqual; private Button btnClear; private Button btnBackSpace; private TextView textView_result; double num1 = 0,num2 = 0,result = 0;//定义存储结果和两个操作数boolean isCheckEqu = false;//检测是否点击了等于 int op = 0;//定义运算符 boolean hasDec = false; boolean hasOp = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.doczj.com/doc/6c8112545.html,yout.activity_main); textView_result = (TextView) findViewById(R.id.result); btn0 = (Button) findViewById(R.id.btn0); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn3 = (Button) findViewById(R.id.btn3); btn4 = (Button) findViewById(R.id.btn4); btn5 = (Button) findViewById(R.id.btn5); btn6 = (Button) findViewById(R.id.btn6); btn7 = (Button) findViewById(R.id.btn7); btn8 = (Button) findViewById(R.id.btn8); btn9 = (Button) findViewById(R.id.btn9); btnAdd = (Button) findViewById(R.id.btn10); btnSub = (Button) findViewById(R.id.btn11);
J2ME计算器源码 J2ME计算器源码import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Midlet extends MIDlet { private Display display; private CalcCanvas mycanvas; public Midlet(){ display=Display.getDisplay(this); mycanvas=new CalcCanvas(); } public void startApp() { display.setCurrent(mycanvas); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } import java.io.IOException; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; public class CalcCanvas extends Canvas{ int status; private Image image = null; /**输入第一个数字状态*/ final int INPUT_FIRST = 1; /**输入第二个数字状态*/ final int INPUT_SECOND = 3; /**输入运算符号状态*/
安卓仿苹果计算器(内附完整源码) //效果图: package com.jc.cal; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
public class MainActivity extends Activity { // 定义九个数字 private Button one; private Button two; private Button three; private Button four; private Button five; private Button six; private Button seven; private Button eight; private Button nine; private Button zero; private Button dot; private Button add; private Button sub; private Button mul; private Button div; private Button clear; private Button equal; private EditText led; String num1 = ""; String num2 = ""; double num3 = 0; String result = ""; String sign = "+"; int mark = 0; boolean flag = true; boolean dotmark = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.doczj.com/doc/6c8112545.html,yout.activity_main); zero = (Button) findViewById(R.id.zero); one = (Button) findViewById(R.id.one); two = (Button) findViewById(R.id.two); three = (Button) findViewById(R.id.three); four = (Button) findViewById(R.id.four); five = (Button) findViewById(R.id.five); six = (Button) findViewById(R.id.six); seven = (Button) findViewById(R.id.seven);
android计算器源码 这是我本人做的Android 简单计算器源代码。可以实现普通四则运算2,10,16进制转换。常见异常处理,可以实现activity屏幕跳转。算法用逆波兰实现。 本项目所有代码不涉及任何知识产权问题,完全由自己学习android时候写的,所以各位可以放心下载。 AndroidManifest.xml代码
//layout 代码
基于Android计算器的开发与测试 实训报告 实训项目名称基于Android计算器的开发与测试二级学院信息工程学院 专业班级 11级 姓名 学号 日期 2014-11-19
项目 名称 基于安卓计算器的开发与测试地点 教13 603 报告内容 在本报告中,我们主要介绍了国内目前手机系统和软件的现状和发展,针对这方面我们设计了基于Android计算器。报告内容大致分为三个部分。 第一部分首先介绍了需求分析,其中介绍了计算器最基本的功能。之后还有一些按键的设置以及计算器的基本功能。 第二部分我们介绍了关于计算器的总体设计和详细设计其中我们用了两个流程图来表示,分别是程序设计流程图和软件设计流程图。然后还包含了计算器模块的设计。 第三部分为计算器的测试部分,其中我们对计算器进行了多方的测试。此外还有测试用例图。 教师评语 成绩:教师签名:
摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:计算器,Android,移动设备
目录 1 绪论 (5) 1.1 研究背景 (5) 2 游戏系统开发平台 (6) 3 系统分析与设计 (7) 3.1 可行性研究 (7) 3.2 系统的需求分析 (7) 3.3 系统的优势 (8) 3.4系统的流程 (8) 4.模板设计与实现 (9) 5 测试用列和结果 (12) 5.1测试用列 (12) 5.2测试用列展示图 (12) 6 小结 (15) 参考文献 (16) 附录: (17)
基于安卓开发的计算器课程设计报告 大庆师范学院 《ANDROID应用设计》课程设计报告 题目:简易计算器 专业班级:计算机科学与技术一班 设计者:\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 指导老师:P’P’P’P’ 设计时间:2016-2017(1) 报告完成日期2016 年12月30日
1 设计任务及要求 设计一款基于Android系统下的计算器,实现一般计算器可以进行的加减乘除算法,以及清零操作。本人学习Android有近半年的时间。由于不同的Android 手机有着不同的分辨率,将不同分辨率的图标图片放置在相应位置。Drawable-hdpi中放置分辨率最高的图标,drawable--ldpi中放置分辨率中等的图标,drawable-mdpi中放置在分辨率最低的图标。界面设计应该就尽量简洁而美观,应该具有良好的交互性。在整个过程中,首先应该对输入进行容错处理,这样有利于提高用户体验。对于用户的按键输入,需要及时的现实在第一个EditView中。用户在输入过程中,肯定会存在一定的错误,程序设计过程中需要对应用程序进行容错处理。容错设计比如:在输入过程中小数的话只能有一个小数点,操作符不能连续输入,整数数据的开头不能出现0等等。在程序设计过程中,需要设计数据结构来存储数字、操作符和容错标记,在本文中使用了栈,对这些数据进行了存储。 2设计原理及总体框图 将表达式转为字符串类进行存储。 将表达式的字符串进行处理,将数字和运算符分别存放在两个栈中(也可以使用队列,理论上使用队列更为合理,在这我使用栈来实现)。 由于栈是后进先出的,所以先将两个栈进行逆序。 设计方法来处理两个栈从而得到相应的计算结果。 原理:将操作符设计优先级,乘除优先级设置为2,加减优先级设置为1。 一、从操作符栈中弹出两个操作符,假设为symbol1和symbol2,比较两个操作付的优先级,如果symbol1的优先级大于等于symbol2的则执行二,否则执行三。 二、从数字栈中弹出两个数字,计算这两个数字在操作符symbol1下的运算结果,结束后将结果压入数字栈,将symbol2压入操作符栈,最后返回一。
计算器安卓设计 课程设计报告 课程名称简单计算器 院部名称计算机工程学院 专业计算机科学与技术 班级15计算机科学与技术 学生姓名周江成 学号1513902035 课程设计地点 1416 课程设计学时 指导教师叶崧 金陵科技学院教务处制
课程设计报告书写要求 课程设计报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 课程设计报告书写说明 课程设计报告应包含以下七部分内容:1、摘要2、目录3、前言/引言 4.正文 5. 结论 6. 参考文献7. 附录,每部分的书写要求参见具体条目要求。 填写注意事项 (1)准确说明,层次清晰。 (2)尽量采用专用术语来说明事物。 (3)外文、符号、公式要准确,应使用统一规定的名词和符号。 (4)应独立完成课程设计报告的书写,严禁抄袭、复印,一经发现,以零分论处。 课程设计报告批改说明 课程设计报告的批改要及时、认真、仔细,一律用红色笔批改。课程设计报告的批改成绩采用五级计分制或百分制,具体评分标准由各院部自行制定。 课程设计报告装订要求 报告批改完毕后,任课老师应将课程设计报告以自然班为单位、按学号升序排列,并附上一份该课程设计的教学大纲。
课程设计题目: 简单计算器 一、摘要(所进行设计工作的主旨、缘起、目的,设计工作的主要内容、过程,采用 的方法及取得的成果。关键字(Key Words): 一般3~5个,最能代表报告内 容特征,或在报告起关键作用,最能说明问题的词组) 目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。 本程序是一个基于现有手机计算器开发的在触屏手机上运行的简单计算器,使用户可以更加简单便捷的使用计算器功能,在此次程序设计中所做的工作主要是设计程序的图形化操作界面,以及利用编程语言实现整个程序的计算功能,使其能够正确运行。 设计的计算器应用程序可以完成加法、减法、乘法以及除法,并且具有删除和清空的功能。 关键词:Android、应用开发、计算器
简易计算器Android版(源码) 简易计算器Android版(源码) 说明:每完成一次计算后,需先clear 清除记忆,当然也可以连算 XML布局
Windows系统下载Android源代码(方便没有积分的boy) 我们在开发中有什么不明白不清楚的,直接把Android 源码下载下来研究就可以了 看源代码将会让你提升很快! 第一步: 下载Git: Git 是用于Linux 内核开发的版本控制工具。与常用的版本控制工具CVS, Subversion 等不同 它采用了分布式版本库的方式 不必服务器端软件支持 使源代码的发布和交流极其方便。Git 的速度很快 这对于诸如Linux kernel 这样的大项目来说自然很重要。Git 最为出色的是它的合并跟踪(merge tracing)能力。而Google Android的项目是基于Git进行版本管理的。下载地址: https://www.doczj.com/doc/6c8112545.html,/p/msysgit/downloads/list 下载 Git-1.8.0-preview20121022.exe 第二步 安装Msysgit
接下来一路next非常简单。 这一步时,选择更改一下安装路径,最好不要安装在c盘, 我一般应用软件都装在d盘 第三步: 建立一个文件夹用来存放Git下来的Android源码(相当于一个用来存放资料的文件夹) 在文件夹上右键就会有Git Bash这一项, 左键选择后进入命令窗口:
第四步: 打开Android源码下载地址 https://https://www.doczj.com/doc/6c8112545.html,/ 截图上绿色字体: gti clone https://https://www.doczj.com/doc/6c8112545.html,/name是实例,就是在刚才打开的命令窗口中输入此命令,其中name对应为下面列表Name下的文件名(注意:资源文件名name是严格区分大小写的); 例如: 我要下载Kernel-Projects这个文件 那我要输入的命令就是:gti clone https://https://www.doczj.com/doc/6c8112545.html,/Kernel-Projects输入命令后然后回车确认就可以了. 总结 之后你就可以在你刚建的文件夹下找到这个文件. 其他的所有资源都是一样的方法.
安卓计算器 Android实验报告题目:简易计算机 专业:软件工程 班级: 1101 学号: 1130070120 姓名:陈佳妍 指导教师:傅龙天 完成日期:2014年 3月 30 日
一、课程设计目的 二、目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。 三、课程设计内容 实现计算机简单的四则运算 三、课程设计过程 功能实现: 加法:
减法: 乘法: 除法:
7.附录 源代码: package com.example.cjy; import android.os.Bundle; import android.app.Activity; import android.view.Gravity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { Button b1;
Button b2; Button b3; Button b4; Button b5; Button b6; Button b7; Button b8; Button b9; Button b10; Button b11; Button b12; Button b13; Button b14; Button b15; Button b16; Button b17; EditText t; float a,b,c; String all = ""; int x = 0,y = 0,z = 0,k = 0; int clear = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.doczj.com/doc/6c8112545.html,yout.activity_main); //t.setGravity(Gravity.RIGHT); b1 = (Button)findViewById(R.id.button1);