FirstActivity.java
1 package com.example.activitytest; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.net.Uri; 6 import android.os.Bundle; 7 import android.util.Log; 8 import android.view.Menu; 9 import android.view.MenuItem; 10 import android.view.View; 11 import android.view.View.OnClickListener; 12 import android.view.Window; 13 import android.widget.Button; 14 import android.widget.Toast; 15 16 public class FirstActivity extends Activity { 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 22 /* 23 * 隐藏标题栏,定要在setContentView()之前执行 ,否则会报错 java.lang.RuntimeException: 24 * Unable to start activity ComponentInfo: 25 * android.util.AndroidRuntimeException: requestFeature() must be called 26 * before adding content 27 */ 28 requestWindowFeature(Window.FEATURE_NO_TITLE); 29 30 // 加载布局 31 setContentView(R.layout.first_layout); 32 33 Button button1 = (Button) findViewById(R.id.button_1); 34 button1.setOnClickListener(new OnClickListener() { 35 @Override 36 public void onClick(View v) { 37 // toast提示 38 // Toast.makeText(FirstActivity.this, "You click Button 1", 39 // Toast.LENGTH_SHORT).show(); 40 41 // 销毁活动 42 // finish(); 43 44 // Intent实现活动跳转,显示Intent 45 // Intent intent = new Intent(FirstActivity.this, 46 // SecondActivity.class); 47 // startActivity(intent); 48 49 // 隐式Intent 50 // Intent intent = new 51 // Intent("com.example.activitytest.ACTION_START"); 52 // intent.addCategory("com.example.activitytest.MY_CATEGORY"); 53 // startActivity(intent); 54 55 // 启动其他程序的活动 56 // Intent intent = new Intent(Intent.ACTION_DIAL); 57 // // intent.setData(Uri.parse("http://www.baidu.com")); 58 // intent.setData(Uri.parse("tel:10086")); 59 // startActivity(intent); 60 // 61 // 用intent传递数据 62 // String data = "Hello SecondActiyity"; 63 // Intent intent = new Intent(FirstActivity.this, 64 // SecondActivity.class); 65 // intent.putExtra("extra_data", data); //键,值 66 // startActivity(intent); 67 68 // 返回数据给上一个活动 69 Intent intent = new Intent(FirstActivity.this, 70 SecondActivity.class); 71 startActivityForResult(intent, 1); 72 73 } 74 75 }); 76 } 77 78 /* 由于我们是使用startActivityForResult()方法来启动SecondActivity 的,在SecondActivity 79 被销毁之后会回调上一个活动的onActivityResult()方法 80 第一个参数requestCode,即我们在启动活动时传入的请求码。第二个参数resultCode,即我们在返回数据时传入的处理结果。 81 第三个参数data,即携带着返回数据的Intent。*/ 82 @Override 83 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 84 switch (requestCode) { 85 case 1: 86 if (resultCode == RESULT_OK) { 87 String returnedData = data.getStringExtra("data_return"); 88 Log.d("FirstActivity", returnedData); 89 } 90 break; 91 default: 92 } 93 } 94 95 // 显示菜单 96 @Override 97 public boolean onCreateOptionsMenu(Menu menu) { 98 getMenuInflater().inflate(R.menu.main, menu); 99 return true; 100 } 101 102 // 菜单相应事件 103 @Override 104 public boolean onOptionsItemSelected(MenuItem item) { 105 switch (item.getItemId()) { 106 case R.id.add_item: 107 Toast.makeText(this, "You clicked add", Toast.LENGTH_SHORT).show(); 108 break; 109 case R.id.remove_item: 110 Toast.makeText(this, "You clicked remove", Toast.LENGTH_SHORT) 111 .show(); 112 break; 113 default: 114 } 115 return true; 116 } 117 }
SecondActivity.java
1 package com.example.activitytest; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.util.Log; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.view.Window; 10 import android.widget.Button; 11 12 public class SecondActivity extends Activity { 13 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 requestWindowFeature(Window.FEATURE_NO_TITLE); 18 setContentView(R.layout.second_layout); 19 // 用intent传递数据 20 // Intent intent = getIntent(); 21 // String data = intent.getStringExtra("extra_data"); 22 // Log.d("SecondActivity",data); 23 24 // 返回数据给上一个活动 25 Button button2 = (Button) findViewById(R.id.button_2); 26 button2.setOnClickListener(new OnClickListener() { 27 @Override 28 public void onClick(View v) { 29 Intent intent = new Intent(); 30 intent.putExtra("data_return", "Hello FirstActivity"); 31 setResult(RESULT_OK, intent); 32 finish(); 33 } 34 }); 35 } 36 37 // 通过按下Back 键回到FirstActivity 38 @Override 39 public void onBackPressed() { 40 Intent intent = new Intent(); 41 intent.putExtra("data_return", "Hello FirstActivity"); 42 setResult(RESULT_OK, intent); 43 finish(); 44 } 45 46 }
first_layout.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <!--@+id/id_name:在XML中定义一个id, 8 @id/id_name:引用一个id 9 wrap_content:示当前元素的高度只要能刚好包含里面的内容就行 --> 10 <Button 11 android:id="@+id/button_1" 12 android:layout_width="match_parent" 13 android:layout_height="wrap_content" 14 android:text="Button 1" 15 /> 16 17 </LinearLayout>
/ActivityTest/res/menu/main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 3 <item 4 android:id="@+id/add_item" 5 android:title="Add" /> 6 <item 7 android:id="@+id/remove_item" 8 android:title="Remove" /> 9 10 </menu>
/ActivityTest/AndroidManifest.xml
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 package="com.example.activitytest" 3 android:versionCode="1" 4 android:versionName="1.0" > 5 6 <uses-sdk 7 android:minSdkVersion="8" 8 android:targetSdkVersion="19" /> 9 10 <application 11 android:allowBackup="true" 12 android:icon="@drawable/ic_launcher" 13 android:label="@string/app_name" 14 android:theme="@style/AppTheme" > 15 <!-- .FirstActivity :com.example.activitytest.FirstActivity 的缩写 --> 16 <activity 17 android:name=".FirstActivity" 18 android:label="This is FirstActivity"> 19 <intent-filter> 20 <!-- 点击桌面应用程序图标时首先打开的就是这个活动 --> 21 <action android:name="android.intent.action.MAIN"/> 22 <category android:name="android.intent.category.LAUNCHER"/> 23 </intent-filter> 24 </activity> 25 26 <activity android:name=".SecondActivity"> 27 <intent-filter> 28 <!--<action>和<category>中的内容同时能够匹配上Intent中指定的action 和category时, 29 这个活动才能响应该Intent。--> 30 <action android:name="com.example.activitytest.ACTION_START" /> 31 <category android:name="android.intent.category.DEFAULT" /> 32 <category android:name="com.example.activitytest.MY_CATEGORY"/> 33 </intent-filter> 34 </activity> 35 <!--可以相应打开网页的intent--> 36 <activity android:name=".ThirdActivity" > 37 <intent-filter> 38 <action android:name="android.intent.action.VIEW" /> 39 <category android:name="android.intent.category.DEFAULT" /> 40 <data android:scheme="http" /> 41 </intent-filter> 42 </activity> 43 </application> 44 45 </manifest>
Android 《第一行代码》 第二章练习代码 ActivityTest
原文:http://www.cnblogs.com/zziy/p/5109902.html