Android學習筆記:Activity跳轉
手機開發最重要的是用戶接口,Android中的Activity就是Android應用與用戶的接口!
學習Android開發之前最起碼要學過J2SE,因為我們是用Java語言開發Android應用,當然要會Java語言了。學習Java的途徑很多,推薦在網上找些好的視頻邊看邊學(我曾經就是這樣學java的)。今天的任務是實現Activity跳轉(就是J2SE中的界面跳轉),在PC機上這個功能非常簡單,但是在Android手機上好像還要費一番功夫!
首先來看看Android應用的目錄結構:src目錄:這個不用多說是放我們編寫的源代碼的。gen目錄:這個目錄需要注意,里面有一個R.java,是定義一些組件ID值的,一般不需要我們修改。接著是assets目錄:這個目錄可以放一些資源文件,還有個res目錄:這個目錄也是放資源文件的,但這里的資源都要在R.java中注冊ID值,一般是自動注冊的。res目錄下還有幾個子目錄,前三個是放圖片的(drawable-hdpi,drawable-ldpi,drawable-mdpi)分別代表不同的分辨率的圖片,layout目錄是存放布局文件的,這個非常重要,我們要經常使用。還有個values目錄,這里存放一些其他資源的。需要特別注意的是在res目錄以及其子目錄下的文件都需要在R.java里注冊ID值。還有個文件非常重要,那就是Android的配置文件AndroidManifest.xml,我們創建的每一個Activity都要在這個文件里配置。
下面來看開發實例:功能描述:第一個Activity里有一行文字和一個按鈕,當點擊按鈕時,界面跳轉到第二個Activity,并將從第一個Activity里傳來的值顯示在界面上。下面是源代碼:
HelloActivity.java:
- package guxia.android;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- public class HelloActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- TextView myTextView=(TextView)findViewById(R.id.myTextView);
- Button myButton = (Button)findViewById(R.id.myButton);
- myTextView.setText("welcome to myAndroid");
- myButton.setText("my Button");
- myButton.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View arg0) {
- Intent intent=new Intent();
- intent.putExtra("myname", "這是從HelloActivity傳過來的值");
- intent.setClass(HelloActivity.this, Activity01.class);
- HelloActivity.this.startActivity(intent);
- }
- });
- }
- }
Activity01.java:
- package guxia.android;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.widget.TextView;
- public class Activity01 extends Activity{
- private TextView myTextView=null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.android01);
- myTextView=(TextView)findViewById(R.id.android01TextView);
- Intent inte=getIntent();
- String myname=inte.getStringExtra("myname");
- myTextView.setText(myname);
- }
- }
R.java
- /* AUTO-GENERATED FILE. DO NOT MODIFY.
- *
- * This class was automatically generated by the
- * aapt tool from the resource data it found. It
- * should not be modified by hand.
- */
- package guxia.android;
- public final class R {
- public static final class attr {
- }
- public static final class drawable {
- public static final int icon=0x7f020000;
- }
- public static final class id {
- public static final int android01TextView=0x7f050000;
- public static final int myButton=0x7f050002;
- public static final int myTextView=0x7f050001;
- }
- public static final class layout {
- public static final int android01=0x7f030000;
- public static final int main=0x7f030001;
- }
- public static final class string {
- public static final int android01=0x7f040002;
- public static final int app_name=0x7f040001;
- public static final int hello=0x7f040000;
- }
- }
main.xml(Layout目錄下,HelloActivity的布局文件):
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:id="@+id/myTextView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <Button
- android:id="@+id/myButton"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
Activity01.xml(Activity01的布局文件):
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:id="@+id/android01TextView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
strings.xml(values目錄下):
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello World, HelloActivity!</string>
- <string name="app_name">helloword</string>
- <string name="android01">Android</string>
- </resources>
配置文件AndroidManifest.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="guxia.android"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk android:minSdkVersion="8" />
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".HelloActivity"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".Activity01" android:label="@string/android01">
- </activity>
- </application>
- </manifest>
【編輯推薦】
- Android學習筆記:Layout.xml屬性
- Android用戶界面設計:線性布局
- Android用戶界面設計:布局基礎
- Android開發實例詳解之IMF
- Kindle和Android開發的比較