兼容安卓的javaproject1.0
<pre class="java" name="code">
//兼容安卓的系统package cn.com.likeshow; import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException; import myvm.test.myActivity;
/*
* author 张章
*
* time 2014-5-12
*
*/
public class Activity { private Bundle bundle; //savedInstanceState用于activity见传递參数
protected void onCreate(Bundle savedInstanceState) { this.bundle=savedInstanceState;
} protected Intent getIntent()
{ return bundle.getIntent(); } protected static Context getApplicationContext()
{
return null; }
protected void startActivity(Intent intent) {
//通过反射完成对象创建
Activity activity=intent.getPreActivity();
Class class1=intent.getAfterActivity(); Constructor con=class1.getConstructors()[0];
try {
Activity activity2=(Activity) con.newInstance();
//把Bundele最为參数传入,调用getIntent()时会从bundle中获取activity间传递的參数
activity2.onCreate(new Bundle(intent)); } catch (Exception e) { e.printStackTrace();
} } protected void setContentView(int id) {
System.out.println("setContentView " + id);
} protected boolean onCreateOptionsMenu(Menu menu) { return true;
} protected boolean onOptionsItemSelected(MenuItem item) {
return true;
} protected static class Toast
{ private Context applicationContext;
private static String s;
private int t; private Toast(Context applicationContext2, String string, int i) {
this.applicationContext=applicationContext2;
this.s=string;
this.t=i;
}
public static Toast makeText(Context applicationContext,String string, int i)
{
//实际安卓中不一定是返回Toast对象,该事例仅仅用于模拟安卓实现原理
return new Toast(applicationContext,string,i);
}
public static void show()
{
int len=s.length()+2;
for(int i=0;i<len;i++)
System.out.print("*");
System.out.print("\n*" +s+"*\n");
for(int i=0;i<len;i++)
System.out.print("*");
System.out.println();
}
} public static void main(String[] args) {
//方便起见,假定默认启动myActivity,当然能够通过读取配置文件,知道默认启动的Activity
new myActivity().onCreate(new Bundle(null));
} } package cn.com.likeshow; public class Bundle { private Intent intent;
public Bundle (Intent intent)
{
this.intent=intent;
}
public Intent getIntent() {
return intent;
}
public void setIntent(Intent intent) {
this.intent = intent;
}
} package cn.com.likeshow; import java.io.ObjectInputStream.GetField;
import java.util.HashMap;
import java.util.Map; public class Intent { private Map<String ,Object>map;
private Activity activity;
private Class class1;
public Intent(Activity activity, Class<? extends Activity> class1)
{
map=new HashMap<String, Object>();
this.activity=activity;
this.class1=class1;
}
public void putExtra(String str,Object obj){
map.put(str, obj);
}
public Object getExtra(String str){
return map.get(str);
} public Activity getPreActivity()
{
return activity; }
public Class getAfterActivity()
{
return class1; } } //==========简易演示样例安卓代码例如以下=========================================================
package myvm.test; import cn.com.likeshow.Activity;
import cn.com.likeshow.Bundle;
import cn.com.likeshow.Intent; public class myActivity extends Activity { @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("myActivity 启动");
setContentView(1);
Toast.makeText(getApplicationContext(),"哈哈Toast",0).show(); Intent intent=new Intent(myActivity.this, SecondActivity.class);
intent.putExtra("myActivity", "hello 2activity"); startActivity(intent); Toast.makeText(getApplicationContext(),"SecondActivity启动完成",0).show(); Intent intent2=new Intent(myActivity.this, ThirdActivity.class);
intent2.putExtra("1", "hello 3activity"); startActivity(intent2);
Toast.makeText(getApplicationContext(),"ThirdActivity启动完成",0).show();
}
} package myvm.test; import cn.com.likeshow.Activity;
import cn.com.likeshow.Bundle;
import cn.com.likeshow.Intent; public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("SecondActivity 启动");
setContentView(2); Intent intent=getIntent();
Object object=intent.getExtra("myActivity");
Object object2=intent.getExtra("1"); System.out.println("SecondActivity "+object);
System.out.println("SecondActivity "+object2);
Toast.makeText(getApplicationContext(),"SecondActivity运行完成",0).show();
}
} package myvm.test; import cn.com.likeshow.Activity;
import cn.com.likeshow.Bundle;
import cn.com.likeshow.Intent; public class ThirdActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("ThirdActivity 启动");
setContentView(3); Intent intent=getIntent();
Object object=intent.getExtra("myActivity");
Object object2=intent.getExtra("1"); System.out.println("ThirdActivity "+object);
System.out.println("ThirdActivity "+object2);
Toast.makeText(getApplicationContext(),"ThirdActivity运行完成",0).show();
}
}
==========效果图 =================
兼容安卓的javaproject1.0的更多相关文章
- H5嵌入原生开发小结----兼容安卓与ios的填坑之路
一开始听说开发H5,以为就是做适配现代浏览器的移动网页,心想不用管IE了,欧也.到今天,发现当初too young too simple,兼容IE和兼容安卓与IOS,后者让你更抓狂.接下来数一下踩过的 ...
- 兼容安卓和ios实现一键复制内容到剪切板
实现代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <m ...
- IKAnalyzer兼容Lucene 5.4.0版本抛出异常?
ava.lang.AbstractMethodError: org.apache.lucene.analysis.Analyzer.createComponents(Ljava/lang/String ...
- Android源码编译全过程记录(基于最新安卓5.1.0)【转】
本文转载自:http://blog.csdn.net/drg1612/article/details/44802533 我的编译条件: 1 Ubuntu Kylin 14.04 长期支持版 下载地址 ...
- 史上最简单JS复制功能,兼容安卓ios!
1.JS复制原理: 被复制内容的元素不能被其他元素遮盖,否则无效. (设置opacity透明为0,不可以设置display:none); 2.常规的复制方法 function copyUrl2() ...
- IE兼容事件绑定V1.0
想要兼容IE678,少用原型,因为它们没有完全实现ECMA-262规范 (function(window){ //兼容IE678时少用原型,因为它没有完全遵循ECMA-262规范 //衬垫代码:isA ...
- 模糊搜索框(H5),兼容安卓和ios(令人头大的ios输入法)
项目里要可以实现,按照模糊,于是从jq22网站找到一个代码,效果如图: 具体的html代码:(复制,需要引入jq相关的支持文件) <!DOCTYPE html PUBLIC "-//W ...
- 考试宝典-真题园安卓AppV2.1.0新版发布啦,全新界面,全新体验,全面适配Android 5.0&6.0系统!
真题园移动客户端是真题园网 http://www.zhentiyuan.com 旗下的一款学习考试应用App. 1.全新适配Android5.0.6.0系统,重新优化架构网络通信模块. 2.全新清爽U ...
- 如何解决vux不兼容安卓低版本问题
最近做移动端H5页面用VUX来写UI组件这块.ios测试的时候没啥大问题,不过在4.4版本的华为手机上测试就崩了.接下来详细记述下崩的几个点. 第一:vux自带的提示框,在低版本安卓系统上全不是居中显 ...
随机推荐
- Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入? (转)
问题一:Statement和PreparedStatement的区别 先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接 ...
- 【C语言探索之旅】 第二部分第五课:预处理
内容简介 1.课程大纲 2.第二部分第五课: 预处理 3.第二部分第六课预告: 创建你自己的变量类型 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语 ...
- Java误区: 静态代码块,当把类将被载入到自己主动运行?
JAVA静态代码块会在类被载入时自己主动运行? 非常多Java开发人员的思想,被这个思想深深的轮奸了n遍,传播这个错误思想的博客,在网上一堆,越来越多的人被轮奸. 如:http://blog.csdn ...
- DataTable填补了实体类返回泛型集合
坤哥见我昨天找了一段代码,如下面: 略微解释下,这段代码时D层查询结束后,将datatable查询到的结果赋值给实体对象的属性,然后返回实体的过程.坤哥看了之后问我,假设实体有500多个属性,难道也要 ...
- BZOJ 1901 Dynamic Rankings 树董事长
标题效果:间隔可以改变k少 我的两个天树牌主席... 隔断Count On A Tree 之后我一直认为,随着树的主席的变化是分域林木覆盖率可持久段树. .. 事实上,我是误导... 尼可持久化线段树 ...
- iOS 要定义自己的导航栏button样式Button Image 执行出彩是不一样的与原来的颜色 -解
在相机闪光灯,在导航栏中自己定义"闪"样式.点击变换的图像期望,但一直没有变化.原来是该条款的Global Tint颜色.因此,系统会自己主动改变图片的颜色Global Tint颜 ...
- Linux-2.6.32内核编译流量计数器nfacct
最近一直想看到一本书<一个Jiegeng华>.而技术不依赖书.但是,这并不表示我IT技术没有兴趣.事实证明,,当我无法理解的沧桑.肮脏的领导者无法理解的心理.自我可惜无法理解它处处感受到脏 ...
- Centos 7 静态学习IP建立
该研究主要集中在 Centos 7.0.1406 学习整理版! 1.编者 ifcfg-eth0 档,vim 同时尽量减少未安装安装,你并不需要自己安装叙述性说明. # vim /etc/sysconf ...
- Java线
线程是一个单一的程序流程.多线程是指一个程序,可以在同一时间执行多个任务.每个任务是由一个单独的线程以完成.那.够同一时候在一个程序中执行,而且每个线程完毕不同的任务.程序能够通过控制线程来控制程序的 ...
- 如何获得SQL Server索引使用情况
原文:如何获得SQL Server索引使用情况 原文出自: http://www.mssqltips.com/sqlservertip/1239/how-to-get-index-usage-info ...