Android(安卓)《第一行代码》 第二章练习代码 ActivityTest
16lz
2021-01-26
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 @Override104 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 @Override15 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 @Override28 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 键回到FirstActivity38 @Override39 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 <application11 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 <activity17 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>
更多相关文章
- 一句话锁定MySQL数据占用元凶
- android执行脚本语言完成root
- AudioTrack&AudioFlinger
- Android(安卓)OnScrollListener
- 怎样实现android http-post方法
- android 从媒体库去数据
- 购物车
- Android(安卓)socket通信app Client端
- HttpURLconnection上传数据