多个activities应用编程

原创 2011年01月11日 10:41:00

基于篇幅,这里我只用两个独立却又关联的activities来作演示:

main activitiy:

 

package mth.android;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class AndroidActivity extends Activity implements View.OnClickListener {
    // Define a media player
 private MediaPlayer mediaPlayer = null;
 private int curPos;
 
 /** Called when the activity is first created.
  *  We can treat it like a constructor. Truly it's not the constructor,
  *  it's called when this activity is created!
  *  Constructor is only used when an instance is created!
  * */ 
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        // Initialize local variables
        curPos = 0;
        mediaPlayer = new MediaPlayer();
       
        /**
         * Initialize View components
         * */
        Button startActivityButton = (Button)this.findViewById(R.id.startAndroidActivity);
        startActivityButton.setOnClickListener(this);
       
        Button stopActivityButton = (Button)this.findViewById(R.id.stopAndroidActivity);
        stopActivityButton.setOnClickListener(this);
       
        Button suspendActivityButton = (Button)this.findViewById(R.id.suspendAndroidActivity);
        suspendActivityButton.setOnClickListener(this);
       
        Button nextActivityButton = (Button)this.findViewById(R.id.nextPlay);
        nextActivityButton.setOnClickListener(this);
       
        Button aboutAndroidButton = (Button)this.findViewById(R.id.aboutAndroidButton);
        aboutAndroidButton.setOnClickListener(this);

    }
 
 public void replay(MediaPlayer mp) {
  // TODO Auto-generated method stub
  mp.stop();
  mp.reset();
  mp = MediaPlayer.create(this, R.raw.apologize);
  mp.seekTo(0);
  mp.start();
 }
 
 public void display(TextView tv, String str)
    {
     tv.setText("Hello world");
     tv.setBackgroundColor(0xFFFFFF00);
    }
   
    public void onClick(View v) {
  switch (v.getId())
  {
  case R.id.startAndroidActivity:
   // TODO Auto-generated method stub
   final TextView textDisplayer = (TextView) this.findViewById(R.id.displayText);
   textDisplayer.setText("Hello world");
   textDisplayer.setBackgroundColor(BIND_AUTO_CREATE);
   // Start media player
   mediaPlayer = MediaPlayer.create(this, R.raw.just_one_last_dance);
         mediaPlayer.seekTo(0);
         mediaPlayer.start();
   break;
  case R.id.stopAndroidActivity:
   mediaPlayer.stop();
   break;
  case R.id.suspendAndroidActivity:
   if(true == mediaPlayer.isPlaying())
   {
    curPos = mediaPlayer.getCurrentPosition();
    mediaPlayer.pause();
   }
   else
   {
    mediaPlayer.seekTo(curPos);
    mediaPlayer.start();
   }
   break;
  case R.id.nextPlay:
   mediaPlayer.stop();
   // uninitialize media player
   mediaPlayer.reset();
   // Reinitialize media player
   mediaPlayer = MediaPlayer.create(this, R.raw.apologize);
   mediaPlayer.seekTo(0);
   mediaPlayer.start();
   break;
   
  case R.id.aboutAndroidButton:
   /*
    * Display new manifest about
    * */
   Intent intent = new Intent();
         intent.setAction("mth.android.ABOUT_ANDROID");
         startActivity(intent);
   break;
  default:
   break;
  }
 }
}

 

About activity:

 

package mth.android;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class AboutActivity extends Activity {
 
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.about_android);
  
  /*
   * Initialize the view components
   * */
  TextView aboutTextView = (TextView)this.findViewById(R.id.aboutAndroidTextView);
  aboutTextView.bringToFront();
  
  Button exitAboutMenuButton = (Button)this.findViewById(R.id.exitAboutMenu);
  exitAboutMenuButton.setOnClickListener(new Button.OnClickListener(){

   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    finishActivity(0);
   }
   
  });
 }
}

接下来要创建一个xml,专门用于About Activity

about_android.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
<TextView android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:id="@+id/aboutAndroidTextView"
    android:text="Welcome to use Android SDK :-)">
</TextView>
<Button   android:text="Exit About"
    android:id="@+id/exitAboutMenu"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">
</Button>

</LinearLayout>

接下来要在android manifest里面注册。manifest用于管理所有的activities等资源,并合理标识。

AndroidManifest.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="mth.android"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AndroidActivity"
                  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=".AboutActivity"
            android:label="@string/app_name">
         <intent-filter>
          <action android:name="mth.android.ABOUT_ANDROID" />
          <category android:name="android.intent.category.DEFAULT" />
         </intent-filter>   
        </activity>

    </application>


</manifest>

 

程序可运行:-)

第三章:Creating Applications and activities-(五)理解应用的优先级以及进程状态

1.1 理解应用的优先级以及进程状态 为了释放资源而去杀掉进程的顺序取决于进程所属应用的优先级,一个应用的优先级取决于它最高优先级的组件。 如果两个应用拥有同样的优先级,那么那个处于这个优先级时间...
  • kongqz
  • kongqz
  • 2011年09月01日 16:33
  • 937

Android应用程序基础 >> 任务栈和亲属关系(Activities and Tasks)

 在android中,一个activity组件可以激活另一个activity组件(可能属于另一个应用程序)。    若新的被激活的activity组件属于另一个应用程序,则那个activity组件会运...

第三章:Creating Applications and activities-(一)什么组成了一个Android应用

1.1 什么组成了一个Android应用 Android应用由一些松耦合的组件组成,通过manifest文件描述了各个组件以及他们之间的交互,同时应用的元数据也包括了他的硬件以及平台需求。 下边的...
  • kongqz
  • kongqz
  • 2011年09月01日 16:26
  • 945

第三章:Creating Applications and activities-(二)介绍应用的Manifest

1.1 介绍应用的Manifest 每个Android项目都包含一个manifest文件,AndroidManifest.xml,被放在项目的根目录中。这个manifest让你定义应用的结构和元数据...
  • kongqz
  • kongqz
  • 2011年09月01日 16:27
  • 1213

{网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习

{网络编程}和{多线程}应用: 基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习...

Windows核心编程-多个应用程序实例间共享数据

多个应用程序实例间共享数据 Windows在一个Win32程序的地址空间周围筑了一道墙。通常,一个程序的地址空间中的数据是私有的,对别的程序而言是不可见的。但是在一个应用程序的多个实例间共享数据还是...

一个项目管理多个应用

  • 2015年10月09日 16:01
  • 862KB
  • 下载

Sas应用之统计多个数据集重复数据量

我的简书:http://www.jianshu.com/p/1f81f76464ef

多个Geodatabase应用模式的研究

  • 2013年04月06日 21:02
  • 759KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多个activities应用编程
举报原因:
原因补充:

(最多只允许输入30个字)