PS:終於開始正式的搞Android了...無人帶的一介菜鳥,我還是自己默默的努力吧...
學習內容:
1.編寫第一個Hello World程序..
學習Android,那么就需要有一個編譯器來集成這個環境,然后在搭建好環境的編譯器上進行開發就可以了,我所介紹的都是在Eclipse上來進行Android的開發...環境搭建在這里我就不進行介紹了..在這里就直接來開發...
先新建一個項目,想必新建項目這東西大家都明白...在建立完Android項目以后,現在一般都是4.X以后的版本了...因此在4.X以后的版本的項目中的layout布局中都會增加一個fragment.xml文件...這個文件被稱之為碎片功能,由於自己也是新手,這個東西也是剛剛接觸,對這個東西也不是很了解,因此我先直接刪除了fragment.xml文件,只是用activity_main.xml文件。。。刪除fragment.xml文件后,需要修改MainActivity.java文件,否則會直接出現錯誤..修改內容如下...//注釋掉的部分,代表我們需要修改的部分...直接刪除掉也可以,注釋掉也行...
package com.example.android_hello; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // if (savedInstanceState == null) { // getSupportFragmentManager().beginTransaction() // .add(R.id.container, new PlaceholderFragment()).commit(); // } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ // public static class PlaceholderFragment extends Fragment { // // public PlaceholderFragment() { // } // // @Override // public View onCreateView(LayoutInflater inflater, ViewGroup container, // Bundle savedInstanceState) { // View rootView = inflater.inflate(R.layout.fragment_main, container, // false); // return rootView; // } // } }
同時我們還需要修改activity.xml文件,把其中的內容全部刪除掉。然后以下代碼..
放入一個絕對布局和一個文本顯示組件... <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world"> </TextView> </RelativeLayout>
然后直接進行運行就可以了...其實直接建立出來的Android項目也是可以直接進行運行的,運行的結果也是會在模擬器上顯示出Hello World...因為新手的原因,因此就使用了常規的模式...以后再對fragment進行深入的研究...
我這個在建立了4.X以后的版本后,會多一個appcompat文件,里面包含了一些要調用的類,這是在22.1以后的版本增加的一個新的東西,這個類的提供可以帶來更多的便利..這個文件是不允許刪除的...刪除掉以后程序會報錯...
2.Activity的了解...
Activity是Android程序的四大組件之一...Activity是程序的應用層...程序的每一個顯示屏幕就是一個Activity...Activity可以理解成一個JSP文件...Activity是無法直接顯示的,它是一個抽象層,一個殼子,顯示的內容就是View或ViewGroup,就是用戶界面組件..這個下章再說...先有個印象...
Activity是具有生命周期的...手機最重要也是最基礎的功能是打電話,也就意味着電話來的時候可能隨時要把現在的程序暫停,如果電量不足的時候也可能隨時要把現有程序關閉;因此Android程序和電腦上的程序有所不同,具體到Activity,Activity的生命周期不是自身控制的,而是由Android系統控制的。
Activity的四種基本狀態...
i.running運行狀態...
這個狀態表示正在運行的Activity,顯示在屏幕的最前端,可以和用戶進行相應的交互...
ii.Paused暫停狀態...
Paused狀態表示的現在的Activity被一個透明層或者是另一個非全屏的Activity進行了覆蓋...雖然可見,但是無法實現用戶交互...
iii.Stop停止狀態...
當一個Activity被另一個Activity完全覆蓋的時候,用戶是無法見到的...
iv.Killed殺死狀態
表示Activity根本沒有進行啟動或者是直接被系統終結殺死的狀態...
Activity的生命周期圖...
Activity棧。。。。
import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; import android.widget.TextView; import android.app.Activity; import android.widget.ImageView; import android.app.Activity; /** Called when the activity is first created. */ public class MainActivityLife extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(tag, “onCreate”); } @Override public void onStart(){ super.onStart(); Log.i(tag, “onStart”); } @Override public void onPause(){ super.onPause(); Log.i(tag, “onPause”); } @Override public void onResume(){ super.onResume(); Log.i(tag, “onResume”); } @Override public void onStop(){ super.onStop(); Log.i(tag, “onStop”); } @Override public void onDestroy(){ super.onDestroy(); Log.i(tag, “onDestroy”); } }
通過運行,我們會在LogCat控制台下看到輸出結果...和下面結果類似...