Android第一步

       最近开始接触Android了,下面是我这几天的一些收获。

       熟悉Android首先要熟悉Android应用程序目录:

                                   

       src目录:存放应用程序源代码 ;

       gen目录:存放R文件,该文件是项目创建时自动生成,是只读文件,此文件存储了该项目中的所有资源的索引; 

       Android4.2.2目录:存放Android系统提供的库; 
       assets目录:存放应用中用到的类似视频文件、MP3等一些媒体文件; 
       bin目录:存放apk文件(Android应用程序编译后的可执行程序); 
       res目录:资源文件夹,存放图片(drawable文件夹)、页面布局文件(layout文件夹)、文字信息(values文件夹); 
       AndroidManifest.xml:功能清单文件,该文件列出了应用中所使用的所有组件,如Activity、Service等,此文件非常重要 ; 
       default.properties:该文件存放了应用对应的一些环境配置,如应用要求运行的最低Android版本。一般不需要手动去更改; 

       proguard.cfg:混淆工具

       然后我们来初步了解下Android四大组件中的Activity。Activity是Android组件中最基本也是最常用的组件,在一个Android应用中,一个Activity通常占据一个窗口界面,通常我们把它看成是撑门面的。因为Activity是用户与程序交互的界面,而用户在使用手机时用的最多的就是页面的跳转,而Android应用程序的生存期并不是由应用本身直接控制的,而是由 Android系统平台进行管理的,所以掌握Activity生命周期非常重要。
       onCreate():创建Activity调用,用于Activity的初始化,在Activity生命周期中只执行一次,适用于实例化对象; 
       onStart():Activity:在屏幕上对用户可见时调用 ; 
       onResume():Activity开始和用户交互的时候调用,这时该Activity是在Activity栈的顶部 ; 
       onPause():Activity被暂停时调用,被其他的Activity挡在后面,这里可以做一些清理和保存工作 ; 
       onStop():Activity被停止或者Activity变成不可见时调用 ; 

       onDestroy():Activity被从内存中移除,一般发生在执行finish方法时或者Android回收内存的时候。

比如,创建一个有文本输入框和一个登陆按钮的界面

public class MainActivity extends Activity {
		//属性  
		private EditText username;
	 @Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//设置显示的布局文件
		 setContentView(R.layout.activity_main);
		 //获取界面的组件
        Button login = (Button)findViewById(R.id.button_login); 
        username = (EditText)findViewById(R.id.user_name);
        //添加监听器
        login.setOnClickListener(click_listener);
        
        System.out.println("执行了第一个Activity的onCreate方法");
	}
	@Override
	protected void onStart() { 
		super.onStart();
		System.out.println("执行了第一个Activity的onStart方法");
	}
	@Override
	protected void onResume() { 
		super.onResume();
		System.out.println("执行了第一个Activity的onResume方法");
	}
	@Override
	protected void onPause() { 
		super.onPause();
		System.out.println("执行了第一个Activity的onPause方法");
	}
	@Override
	protected void onStop() { 
		super.onStop();
		System.out.println("执行了第一个Activity的onStop方法");
	}
	@Override
	protected void onDestroy() { 
		super.onDestroy();
		System.out.println("执行了第一个Activity的onDestroy方法");
	}

     

   当启动程序时,会执行onCreate,onStart,onResume 方法   

 

     

          

             然后当跳转到第二个界面因为Activity被停止调用不可获焦所以执onPause方法,又因为Activity被第二个界面挡住完全不可见所以执行onStop方法,


最后是Intent。Intent,信使,协助组件之间的通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。

   //创建动作事件监听器对象(匿名内部类)
    OnClickListener click_listener = new OnClickListener(){ 
  	    	//监听点击的方法
  	    public void onClick (View v){
  	    	Toast.makeText(MainActivity.this,username.getText().toString(),3).show();
  	    	//验证
  	    	if(username.getText().toString().equals("tiaozhuan")){
  	    		//跳转到第二个界面
  	    		Intent intent = new Intent(MainActivity.this,SecondActivity.class);//信使
  	    		intent.putExtra("name",username.getText().toString());
  	    		MainActivity.this.startActivity(intent);
  	    	}else{
  	    		//提示信息
  	    		Toast.makeText(MainActivity.this,"登陆失败",3).show();
  	    	}
  	     
  	  }
  	  
    	
    };
    

   

   

在第二个界面添加了背景图片,添加背景图片只用把图片导入drawable中,然后在第二个布局文件中加上一句android:background="@drawable/xiamu"就行了,效果如上面第二张图片所示,然后是背景音乐的问题,首先点击windows-->show view-->other-->
Android-->File Explorer-->ok,接着在File Explorer中的mnt/sdcard中导入歌曲,然后在第二个Activity中添加代码,当然在创建第二个Activity后要在AndroidManifest.xml中注册

public class SecondActivity extends Activity{
	MediaPlayer mp = new MediaPlayer();
         /**
          * Activity的入口 
          */ 
		@Override
		protected void onCreate(Bundle savedInstanceState) { 
			super.onCreate(savedInstanceState);
			//设置显示的布局文件
			setContentView(R.layout.activity_second);
			//获取Intent
			Intent intent = getIntent();
			//取出保存在intent中的信息
			String username = intent.getStringExtra("name");
			//获取到布局文件中的文本组件
			TextView show_username = (TextView)findViewById(R.id.show_username);
			//设置文本组件上的文本为第一个界面传过来的用户名
			show_username.setText(username);
			try {
				mp.setDataSource("sdcard/Emilia - Big Big World.mp3");
				mp.prepare();
			} catch (Exception e) {
				e.printStackTrace();
			}
		
		} 
		@Override
		protected void onStart() {
			super.onStart();
			//播放音乐
			try {
				mp.start();
			}catch (Exception e) {
				e.printStackTrace();
			}
			
		} 
		@Override
		protected void onPause() {
			super.onPause();
			//暂停音乐
			mp.pause();
			
		}
		
	}
     


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值