Android

手机开发最重要的是用户接口,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:

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:

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

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代码

<?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代码

<?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代码

<?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代码

<?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>  

https://shimo.im/docs/tXXKHgdjPYj6WT8d/