ACM函数模板开源

来源:互联网 发布:海天盛筵 知乎 编辑:程序博客网 时间:2024/06/07 17:38

今天平安夜,首先祝大家平平安安。


和众多Android工程师一样,我想写个好的app。
开发这个小应用,我也只是当时的一时兴起,为了提高我的开发速度,我用到了人家大牛写的仿小米启动页界面。

Android手机千千万万,要做到全部兼容是很难的,同学老是叫我更新,我都有点烦了,首先我做这个我没有一点收入可言,我没有在里面放任何广告。下载量高了,我也不会有一点钱,提交到市场那只是方便下载罢了。再者,我是二流学校。搞ACM的算法那肯定是远远不及人家那种一流学校的。
还有就是,我比较懒。这就是重点。

我也想更新啊,用html把看代码的界面在弄得漂亮一点(不仅可以看文字,还可以看图片。更多的是可以放大缩小,内容进行一个动态排版)我甚至想做推送呢,连接数据库,把内容动态更新,可是里面的内容我怎么跟新呢?自己写?还是百度?这些都是一个问题。

本想弄好就来写这篇文章的,可是一直没有写,知道为什么吗???还不是我懒,哈哈。很多时候写了一两个小东西,本想拿写出来分享一下的,更多的就是记录学习笔记。
哎,懒害死人啊。
你们也看到,我很久都没有写博客了。都是因为懒。。。而不是没有时间。

昨天把电脑拿去给大神除尘了,我给他钱,他始终都没有收,搞得我太不好意思了,打算明年自己买一套工具来自己搞吧,哈哈~

   



 好了,我们直接奔主题:

系统环境:windows8标准版
开发环境:eclipse
使用的sdk版本:4.4

  在这里我就不上传效果图片了,你们可以上应用宝或者360上下载到(ACM函数模板)。或者点击http://android.myapp.com/myapp/detail.htm?apkName=com.lxw.acm这里下载到手机上面运行。

我们先来看项目的工程结构:






很简单的,我就一个包搞定。
我把从百度整理来的资料都放在 assets这个文件里面。


来看看我的java代码文件目录:



其实我认为还可以更简。减少代码的冗余性嘛。
当时我害怕会出现activity没有被真正结束,而又被接着打开,然后可能会出现一些错误时,我就没有这样子做了,不过你们可以试试。


看看,里面的代码我均是用 txt的文件来保存的。然后使用Java的I/O流在把它们读出来就好了。



项目里面看代码的如何点击一个item就能够显现相应的标题,查看相应的代码呢?
如果这个一个item对应一个activity的话,那代码冗余性是很高的,里面估计有好几十个item,你就要做几十个对应的activity出来,到时候复制粘贴都能把你搞烦。


我是这样子解决这种问题的:看代码。简单得activity单项值传递




利用activity传值得方式。把我的文件名放在一个数组里面,正好listview里面item的也是从0开始,正好和我的数组下标一一对应,这样子我点击相应的item就能够把相应的值传过去,打开我看demo的那个activity。



下面来看开代码的这个activity,简单得不能再简单了,就是一个Java的I/O流。

public class One_01 extends Activity {private String content = "";private TextView tv;private TextView title;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.one_01);init();}void init() {Intent intent = getIntent();tv = (TextView) findViewById(R.id.tv1);title = (TextView) findViewById(R.id.title);title.setText(intent.getExtras().getString("title"));try {InputStream in = getAssets().open(intent.getExtras().getString("name"));content = In.inreader(in);in.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}tv.setText(content);}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();// Process.killProcess(android.os.Process.myPid());System.exit(1);}// @Override// public boolean onKeyDown(int keyCode, KeyEvent event) {// // TODO Auto-generated method stub// if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {// //Process.killProcess(android.os.Process.myPid());// System.exit(1);// }// return true;// }}

首先我们先做的就是 获取前一个activity传过来的值,然后对它进行处理,把它转换成我们需要的就行了。


其中,为了解决back之后这个activity处于pause状态,在打开时。会出现 现在的内容仅接着上个内容的后面的情况。

其实back之后我们的activity应该调用finish方法来自己销毁,但是它不是立即销毁,这得由系统决定,不是我们所能控制的。

所以我在back之后就把当前的activity进程给结束了。哈哈。



写了这么多,大家肯定还是最想要代码了。
不过在下载代码之前,我们先互相关注下微博好吧?

我的微博:奔跑的甩甩

关注肯定是有好处的,以后我将会在上面发表我的在编程路上的一切,因为在空间发 很多朋友都看不懂。毕竟他们不是这个专业的,不能怪他们。



源码来了,下载地址:请点击我


3 0
原创粉丝点击