zoukankan      html  css  js  c++  java
  • 兼容安卓的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("
    *" +s+"*
    "); 
    			 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();
    	}
    }
    

    
    


    ==========效果图 =================

  • 相关阅读:
    113. Path Sum II
    112. Path Sum
    111. Minimum Depth of Binary Tree
    110. Balanced Binary Tree
    Create
    SetWindowPos
    INT_PTR数据类型
    SDK介绍
    COLORREF
    setfont()函数
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4510349.html
Copyright © 2011-2022 走看看