Android學(xué)習(xí)筆記:Activity跳轉(zhuǎn)
手機(jī)開發(fā)最重要的是用戶接口,Android中的Activity就是Android應(yīng)用與用戶的接口!
學(xué)習(xí)Android開發(fā)之前最起碼要學(xué)過(guò)J2SE,因?yàn)槲覀兪怯肑ava語(yǔ)言開發(fā)Android應(yīng)用,當(dāng)然要會(huì)Java語(yǔ)言了。學(xué)習(xí)Java的途徑很多,推薦在網(wǎng)上找些好的視頻邊看邊學(xué)(我曾經(jīng)就是這樣學(xué)java的)。今天的任務(wù)是實(shí)現(xiàn)Activity跳轉(zhuǎn)(就是J2SE中的界面跳轉(zhuǎn)),在PC機(jī)上這個(gè)功能非常簡(jiǎn)單,但是在Android手機(jī)上好像還要費(fèi)一番功夫!
首先來(lái)看看Android應(yīng)用的目錄結(jié)構(gòu):src目錄:這個(gè)不用多說(shuō)是放我們編寫的源代碼的。gen目錄:這個(gè)目錄需要注意,里面有一個(gè)R.java,是定義一些組件ID值的,一般不需要我們修改。接著是assets目錄:這個(gè)目錄可以放一些資源文件,還有個(gè)res目錄:這個(gè)目錄也是放資源文件的,但這里的資源都要在R.java中注冊(cè)ID值,一般是自動(dòng)注冊(cè)的。res目錄下還有幾個(gè)子目錄,前三個(gè)是放圖片的(drawable-hdpi,drawable-ldpi,drawable-mdpi)分別代表不同的分辨率的圖片,layout目錄是存放布局文件的,這個(gè)非常重要,我們要經(jīng)常使用。還有個(gè)values目錄,這里存放一些其他資源的。需要特別注意的是在res目錄以及其子目錄下的文件都需要在R.java里注冊(cè)ID值。還有個(gè)文件非常重要,那就是Android的配置文件AndroidManifest.xml,我們創(chuàng)建的每一個(gè)Activity都要在這個(gè)文件里配置。
下面來(lái)看開發(fā)實(shí)例:功能描述:第一個(gè)Activity里有一行文字和一個(gè)按鈕,當(dāng)點(diǎn)擊按鈕時(shí),界面跳轉(zhuǎn)到第二個(gè)Activity,并將從第一個(gè)Activity里傳來(lái)的值顯示在界面上。下面是源代碼:
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傳過(guò)來(lái)的值");
- 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學(xué)習(xí)筆記:Layout.xml屬性
- Android用戶界面設(shè)計(jì):線性布局
- Android用戶界面設(shè)計(jì):布局基礎(chǔ)
- Android開發(fā)實(shí)例詳解之IMF
- Kindle和Android開發(fā)的比較