Android 《第一行代码》 第二章练习代码 ActivityTest

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)