当前位置: 代码迷 >> Android >> Android札记(3)-Activity和Intent
  详细解决方案

Android札记(3)-Activity和Intent

热度:74   发布时间:2016-05-01 10:18:46.0
Android笔记(3)---Activity和Intent

?

  1. 认识Activity?
    Activity是应用程序的一个组件
    详解Android的Activity组件
  2. 创建Activity
    1. 一个Activity就是一个类,并且这个类要继承Activity
    2. 需要覆写onCreate方法
    3. 第一个Activity都需要在AndroidManifest.xml文件中进行配置
    4. 为Activity添加必要控件
  3. 向Activity添加一个组件
    res/layout/main.xml??????? 布局文件
  4. 在一个Activity当中启动另外一个Activity的方法
    参照第二个例子:Activity002
  5. 使用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>

?

运行效果:



?

?

?


?
?


?

  相关解决方案