调用另一个Activity


1、创建主Activity

使用Eclipse新建项目MyFirstApp,UI布局如下:

[html] view plaincopy

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

  2.     xmlns:tools="http://schemas.android.com/tools"  

  3.     android:layout_width="match_parent"  

  4.     android:layout_height="match_parent"  

  5.     android:paddingBottom="@dimen/activity_vertical_margin"  

  6.     android:paddingLeft="@dimen/activity_horizontal_margin"  

  7.     android:paddingRight="@dimen/activity_horizontal_margin"  

  8.     android:paddingTop="@dimen/activity_vertical_margin"  

  9.     android:orientation="horizontal"  

  10.     tools:context=".MainActivity">  

  11.    

  12.     <EditText  

  13.         android:id="@+id/et_message"  

  14.         android:layout_height="wrap_content"  

  15.        android:layout_width="0dp"  

  16.         android:layout_weight="1"  

  17.         android:hint="@string/input_here"/>  

  18.      

  19.     <Button  

  20.         android:layout_width="wrap_content"  

  21.         android:layout_height="wrap_content"  

  22.         android:text="@string/click"  

  23.         android:onClick="sendMessage"/>  

  24.    

  25. </LinearLayout>  



注意通过权重来分配尺寸的方式

组件1:

[html] view plaincopy

  1. android:layout_width="0dp"  

  2. android:layout_weight="1"  


组件2:

[html] view plaincopy

  1. android:layout_width="wrap_content"  


2、在主类中指定onclick所对应的sendMessage方法

[java] view plaincopy

  1. package com.lujinhong.androidtraningmyfirstapp;  

  2.    

  3. import android.os.Bundle;  

  4. import android.app.Activity;  

  5. import android.content.Intent;  

  6. import android.view.Menu;  

  7. import android.view.View;  

  8. import android.widget.EditText;  

  9.    

  10. public class MainActivity extends Activity{  

  11.      

  12.      public final static String EXTRA_MESSAGE="com.lujinhong.myfirstapp.MESSAGE";  

  13.    

  14.     @Override  

  15.     protected void onCreate(Bundle savedInstanceState){  

  16.         super.onCreate(savedInstanceState);  

  17.         setContentView(R.layout.activity_main);  

  18.     }  

  19.    

  20.     @Override  

  21.     public boolean onCreateOptionsMenu(Menu menu){  

  22.         // Inflate themenu; this adds items to the action bar if it is present.  

  23.         getMenuInflater().inflate(R.menu.main, menu);  

  24.         return true;  

  25.     }  

  26.      

  27.     public void sendMessage(View v){  

  28.                      

  29.         EditText et_message=(EditText)this.findViewById(R.id.et_message);  

  30.         String message= et_message.getText().toString().trim();  

  31.          

  32.         Intent intent= new Intent(this,DisplayMessageActivity.class);  

  33.         intent.putExtra(EXTRA_MESSAGE, message);  

  34.          

  35.         this.startActivity(intent);  

  36.          

  37.     }  

  38.    

  39. }  



(1)关于intent

An Intent isan object that provides runtime binding between separate components (such astwo activities). TheIntent representsan app’s "intent to do something." You can use intents for a widevariety of tasks, but most often they’re used to startanother activity.

(2)调用另一个activity的步骤:

l  首先取得editText中的文字

[java] view plaincopy

  1. EditText et_message = (EditText) this.findViewById(R.id.et_message);  

  2. String message = et_message.getText().toString().trim();  

l  然后创建一下intent,并把文字作为K-V形式保存到intent中

[java] view plaincopy

  1. Intent intent= new Intent(this,DisplayMessageActivity.class);  

  2. intent.putExtra(EXTRA_MESSAGE, message);  


创建intent时,通过一个类名,指定调用哪个类文件。

l  最后启动一个新的activity.

[java] view plaincopy

  1. this.startActivity(intent);  


3、显示另一个Activity

[java] view plaincopy

  1. package com.lujinhong.androidtraningmyfirstapp;  

  2.    

  3. import android.os.Bundle;  

  4. import android.app.Activity;  

  5. import android.content.Intent;  

  6. import android.view.Menu;  

  7. import android.widget.TextView;  

  8.    

  9. public class DisplayMessageActivityextends Activity{  

  10.    

  11.     @Override  

  12.     protected void onCreate(Bundle savedInstanceState){  

  13.         super.onCreate(savedInstanceState);  

  14.         setContentView(R.layout.activity_display_message);  

  15.          

  16.         // Get the messagefrom the intent  

  17.         Intent intent= getIntent();  

  18.         String message= intent.getStringExtra(MainActivity.EXTRA_MESSAGE);  

  19.    

  20.         // Create the textview  

  21.         TextView textView=new TextView(this);  

  22.         textView.setTextSize(40);  

  23.         textView.setText(message);  

  24.    

  25.         // Set the textview as the activity layout  

  26.         setContentView(textView);  

  27.          

  28.     }  

  29.    

  30.     @Override  

  31.     public boolean onCreateOptionsMenu(Menu menu){  

  32.         // Inflate themenu; this adds items to the action bar if it is present.  

  33.         getMenuInflater().inflate(R.menu.display_message, menu);  

  34.         return true;  

  35.     }  

  36.    

  37. }  


你可能感兴趣的:(调用另一个Activity)