0108 Activity的生命周期(二)+显示文本的几种方法+调用发送短信(Intent)
0108
Task概念
栈 存放Activity 的数据结构
要以对话框形式出现
在Manifest.xml文件中的<activity>里加入
android:theme="@android:style/Theme.Dialog"
------------------------------------------------------------
显示文本的几种方法
第一种
symbol.setText("乘以");
calculate.setText("计算");
第二种
设置要显示的值,但是这种方法显示语言会写死,不适合国际化平台
android中的strings.xml
<string name ="symbol">乘以</string>
<string name ="calculate">计算</string>
在Activity控件中可以这么写以显示
symbol.setText(R.string.symbol);
calculate.setText(R.string.calculate);真正的值在strings.xml这个文件中
可以在android平台上放上不同语言的 strings.xml 比如日文或者英文版本的strings.xml
所以推荐把字符窜放在strings.xml中
第三种
android中的strings.xml
<string name="back_button">返回</string>
在layout部署文件中
android:text="@string/back_button"
不需要再Activity添加文件
--------------------------------------------------------------
调用发送短信
-----------------------------------------------------------------
class sendSMSListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Uri uri=Uri.parse("smsto:18796014917");//Creates a uri which parses the given encoded URI string
Intent intent=new Intent(Intent.ACTION_SENDTO,uri);//Activity Action: Send a message to someone specified by the data.
intent.putExtra("sms_body", "The SMS text");
startActivity(intent);
}
-------------------------------------------------------------------
Activity02
1 package com.example.mars_activity; 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.view.View.OnClickListener; 9 import android.widget.Button; 10 11 public class Activity02 extends Activity { 12 private Button myButton=null; 13 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_activity02); 18 19 myButton =(Button)findViewById(R.id.myButton); 20 myButton.setOnClickListener(new MyButtonListener());//这样就把MyButtonListener捆绑在myButton这个按钮上了 21 22 } 23 24 @Override 25 public boolean onCreateOptionsMenu(Menu menu) { 26 // Inflate the menu; this adds items to the action bar if it is present. 27 getMenuInflater().inflate(R.menu.activity_activity02, menu); 28 return true; 29 } 30 class MyButtonListener implements OnClickListener//这是一个内部类 实现OnClickListener这个接口 31 {//此为内部类,是一个监听器 32 33 @Override 34 public void onClick(View v) { 35 // TODO Auto-generated method stub 36 //生成一个Intent对象 37 Intent intent =new Intent(); 38 intent.setClass(Activity02.this, OtherActivity.class);//从一个activity跳转到另一个activity 39 //intent相当于一个请求 ,请求第二个参数 40 Activity02.this.startActivity(intent);//把intent传进去,startService是Activity的一个方法 41 //这样就完成监听器的编写,然后要把这个监听器捆绑在这样按钮上 42 }//实现这个接口都要复写onClick()这个方法 43 44 } 45 46 }
OtherActivity.java
1 package com.example.mars_activity; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.net.Uri; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.widget.Button; 10 import android.widget.TextView; 11 12 public class OtherActivity extends Activity { 13 private TextView myTextView=null; 14 private Button myButton; 15 private Button sendSMS; 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 // TODO Auto-generated method stub 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.others);//让Activity使用other.xml 的布局layout 21 myTextView=(TextView)findViewById(R.id.myTextView); 22 myTextView.setText(R.string.other);//在value-string里面添加<string name="other">OtherActivity</string> R中会自动生成 23 myButton=(Button)findViewById(R.id.myButton); 24 myButton.setOnClickListener(new ButtonListener()); 25 sendSMS=(Button)findViewById(R.id.sendSMS); 26 sendSMS.setOnClickListener(new sendSMSListener()); 27 sendSMS.setText("send SMS"); 28 29 }//source-override implement/method 直接出来 30 31 class ButtonListener implements OnClickListener 32 { 33 34 @Override 35 public void onClick(View arg0) { 36 // TODO Auto-generated method stub 37 Intent intent=new Intent(); 38 intent.setClass(OtherActivity.this, Activity02.class); 39 OtherActivity.this.startActivity(intent); 40 41 42 } 43 44 } 45 class sendSMSListener implements OnClickListener{ 46 47 48 @Override 49 public void onClick(View v) { 50 // TODO Auto-generated method stub 51 Uri uri=Uri.parse("smsto:400-400-123");//Creates a uri which parses the given encoded URI string 52 //将要执行的命令写在uri中 53 Intent intent=new Intent(Intent.ACTION_SENDTO,uri);//Activity Action: Send a message to someone specified by the data. 54 //将uri解析为一个发送命令动作的请求 55 intent.putExtra("sms_body", "The SMS text"); 56 //执行该请求,给短信体 57 startActivity(intent); 58 59 60 }//执行发送短信 61 } 62 63 64 65 }
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 tools:context=".Activity02" > 7 8 9 <Button 10 android:id="@+id/myButton" 11 android:layout_width="fill_parent" 12 android:layout_height="wrap_content" 13 /> 14 15 </RelativeLayout>
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 <TextView 7 android:id="@+id/myTextView" 8 android:layout_width="fill_parent" 9 android:layout_height="wrap_content" 10 /> 11 <Button 12 android:id="@+id/myButton" 13 android:layout_width="fill_parent" 14 android:layout_height="wrap_content" 15 android:text="@string/back_button" 16 /> 17 <Button 18 android:id="@+id/sendSMS" 19 android:layout_width="fill_parent" 20 android:layout_height="wrap_content" 21 /> 22 23 </LinearLayout>
AndroidManifest.xml 添加
1 <activity 2 android:name="com.example.mars_activity.OtherActivity" 3 android:label="@string/other" 4 android:theme="@android:style/Theme.Dialog" 5 />