Android:程序架构

Activity:
一个Activity为一个界面,对应一个继承android.app.Activity的子类。
为了显示,可以加载一个layout.xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/button_exit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_exit" />   
</LinearLayout>

Activity类:

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐藏标题栏
        //加载layout.xml文件
        //获取按钮
        //定义按钮点击事件
        requestWindowFeature(Window.FEATURE_NO_TITLE);     
        setContentView(R.layout.activity_main);
        Button button = (Button)findViewById(R.id.button_exit);
        button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(Intent.ACTION_DIAL);
				intent.setData(Uri.parse("tel:10086"));
				startActivity(intent);
			}
		});
    }

    //获取menu.xml并加载菜单项
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    //定义菜单项的选择事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        switch (id) {
		case R.id.add_item:
			Toast.makeText(MainActivity.this, "you selected add", Toast.LENGTH_SHORT).show();
			break;
		case R.id.delete_item:
			Toast.makeText(MainActivity.this, "you selected delete", Toast.LENGTH_LONG).show();
			break;
		default:
			break;
		}
        return true;
    }
}

定义菜单项xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.atest.MainActivity" >
    <item
        android:id="@+id/add_item"
        android:orderInCategory="100"
        android:title="@string/add_item"
        app:showAsAction="never"/>
    <item
        android:id="@+id/delete_item"
        android:orderInCategory="101"
        android:title="@string/delete_item"
        app:showAsAction="never"/>
</menu>

另外,所有应用中用到的字符串数据定义在value文件夹下的xml中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">TEST</string>
    <string name="hello_world">Hello world!</string>
    <string name="add_item">add</string>
    <string name="delete_item">delete</string>
    <string name="button_exit">exit</string>
    
    <color name="red">#FF0000</color>
</resources>

应用中的所有Activity都需要在AndroidManifest.xml中定义:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.atest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="22" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            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=".OtherActivity"
            android:label="@string/activity_title" >
            <intent-filter >
                <action android:name="android.intent.action.View"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="http"/>
            </intent-filter>
        </activity>
        
    </application>

</manifest>
posted @ 2019-01-03 13:46  xuejianbest  阅读(143)  评论(0编辑  收藏  举报