- 认识Activity
Activity是应用程序的一个组件
详解Android的Activity组件 - 创建Activity
- 一个Activity就是一个类,并且这个类要继承Activity
- 需要覆写onCreate方法
- 第一个Activity都需要在AndroidManifest.xml文件中进行配置
- 为Activity添加必要控件
- 向Activity添加一个组件
res/layout/main.xml 布局文件 - 在一个Activity当中启动另外一个Activity的方法
参照第二个例子:Activity002 - 使用Intent在Activity之间传递数据的基本方法
参照第二个例子:Activity002 - 为控件添加监听器
注:使用内部类的好处:可以调用外部类的成员变量和成员方法
例中所贴代码为以下几部分代码:
java代码
res/layout/activity_xxx.xml
res/values/strings.xml
AndroidManifest.xml
-----------------------------------------------------------------------------------
第一个例子:Activity001
MainActivity.java
package com.example.activity001;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView myTextView = (TextView)findViewById(R.id.myTextView);
Button myButton = (Button) findViewById(R.id.myButton);
myTextView.setText("我的第一个TextView");
myButton.setText("我的第一个Button");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
res/laout/activity_main.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:orientation="vertical"
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:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Activity001</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activity001"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="9" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.activity001.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>
</application>
</manifest>
运行效果:

-------------------------------------------------------------------------------------------------------------
第二个例子:Activity002
MainActivity.java
package com.example.activity002;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
// 用于跳转到另一个Activity
private Button myButton = null;
// 用于发短信
private Button sendButton = null;
private TextView myTextView = null;
private static int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTextView = (TextView) findViewById(R.id.myTextView);
myTextView.setText("这是第一个Activity\tcount: " + (count++));
myButton = (Button) findViewById(R.id.myButton);
myButton.setText("跳转到第二个Activity");
myButton.setOnClickListener(new MyButtonListener());
sendButton = (Button) findViewById(R.id.sendButton);
sendButton.setText("跳转到发送短信Activity");
sendButton.setOnClickListener(new SendButtonListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class MyButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
// 两个Activity之间传递参数
intent.putExtra("activity_param_001", "参数值来自Activity");
MainActivity.this.startActivity(intent);
}
}
class SendButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
// 实现了一次转变到发送短信的界面。
// Uri uri = Uri.parse("smsto://730371432");
Uri uri = Uri.parse("smsto:18352507379");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
// 这个程序是存放的是键值对
intent.putExtra("sms_body", "the SMS text");
// 这个程序也可以写作:startActivity(intent);表示的启动
MainActivity.this.startActivity(intent);
}
}
}
SecondActivity.java
package com.example.activity002;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class SecondActivity extends Activity {
// 返回到第一个Activity
private Button myButton = null;
private TextView myTextView = null;
private TextView showTextView = null;
private static int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
myTextView = (TextView) findViewById(R.id.my2TextView);
myTextView.setText("这是第二个Activity\tcount: " + (count++));
myButton = (Button) findViewById(R.id.my2Button);
myButton.setText("跳转到第一个Activity");
myButton.setOnClickListener(new My2ButtonListener());
Intent intent = getIntent();
String paramValue = intent.getStringExtra("activity_param_001");
showTextView = (TextView) findViewById(R.id.showTextView);
showTextView.setText(paramValue);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class My2ButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(SecondActivity.this, MainActivity.class);
SecondActivity.this.startActivity(intent);
}
}
}
布局文件
res/layout/activity_main.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:orientation="vertical"
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:id="@+id/myTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/activity_001" />
<Button
android:id="@+id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/sendButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
res/layout/activity_second.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:orientation="vertical"
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=".SecondActivity" >
<TextView
android:id="@+id/my2TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/activity_002" />
<Button
android:id="@+id/my2Button"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/showTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Activity002</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="activity_001">第一个Activity</string>
<string name="activity_002">第二个Activity</string>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activity002"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="9" />
<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=".SecondActivity"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
运行效果:



本文详细介绍了Android应用开发中的Activity组件,包括创建Activity、配置Activity、添加控件、布局文件、传递数据和监听事件等内容。通过两个示例程序展示了如何在Activity间跳转并传递参数。
402

被折叠的 条评论
为什么被折叠?



