兼容安卓的java工程1.0(一)

2014-11-23 21:43:36 · 作者: · 浏览: 3
 
//兼容安卓的系统
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
  

   


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
    
     map;
	private Activity activity;
	private Class class1;
	public Intent(Activity activity, Class
      class1)
	{
		map=new HashMap
     
      (); 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(g