从零开始学android<Intent进阶.四十一.>
前一节我们学习了Intent的基本用法,多个Activity之间的转跳并传递信息。
今天我们使用Intnet来完成一些 特殊的操作,比如拨打电话,发送短信,浏览网页等……
OK废话不多说,直接上教程,具体会在代码注释中具体讲解
1.使用Intent打开网页
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:text="请输入您要访问的网页" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="18dp" android:ems="10" > </EditText> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText1" android:layout_centerHorizontal="true" android:layout_marginTop="29dp" android:text="访问" /> </RelativeLayout>
package com.example.intent4; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private Button button; private EditText urlinfo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_main); button=(Button)this.findViewById(R.id.button1); urlinfo=(EditText)this.findViewById(R.id.editText1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub String url=urlinfo.getText().toString().trim(); if(!"".equals(url)){//对输入的内容进行安全验证 Intent intent=new Intent(); Uri uri=Uri.parse("http://"+url);//设置URi数据 intent.setAction(Intent.ACTION_VIEW);//设置意图指向 intent.setData(uri);//设置数据 MainActivity.this.startActivity(intent);//开始意图 } else { Toast.makeText(MainActivity.this, "您输入的内容为空,无法访问", 2).show(); } } }); } }
点击按钮后
2.使用Intent拨打电话
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText1" android:layout_centerHorizontal="true" android:layout_marginTop="44dp" android:text="拨打" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="号码" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/textView1" android:layout_marginRight="16dp" android:ems="10" > <requestFocus /> </EditText> </RelativeLayout>
package com.example.intent5; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private Button button; private EditText phoneInfo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)this.findViewById(R.id.button1); phoneInfo=(EditText)this.findViewById(R.id.editText1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (!("".equals(phoneInfo.getText().toString()))) { String phone=phoneInfo.getText().toString(); Intent intent =new Intent(); Uri uri=Uri.parse("tel:"+phone); intent.setData(uri); intent.setAction(Intent.ACTION_CALL); MainActivity.this.startActivity(intent); } else { Toast.makeText(MainActivity.this, "电话号码为空", 2).show(); } } }); } }
3.使用Intent发送短息
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="号码" android:textSize="20px" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:ems="10" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="发送" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignRight="@+id/editText2" android:layout_centerVertical="true" android:ems="10" android:gravity="top" android:inputType="textMultiLine" android:lines="12" > <requestFocus /> </EditText> </RelativeLayout>
JAVA文件
package com.example.intent6; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private Button button; private EditText number, content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) this.findViewById(R.id.button1); number = (EditText) this.findViewById(R.id.editText1); content = (EditText) this.findViewById(R.id.editText2); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String numberInfo=number.getText().toString(); String contentInfo=content.getText().toString(); if (!("".equals(numberInfo)||"".equals(contentInfo))) { Intent intent =new Intent(); Uri uri=Uri.parse("smsto:"+numberInfo);//设置发送号码 intent.setType("vnd.android-dir/mms-sms");//形式 intent.putExtra("sms_body", contentInfo);//内容 intent.setAction(intent.ACTION_SENDTO);//对象 intent.setData(uri);//设置信息 MainActivity.this.startActivity(intent); } else { Toast.makeText(MainActivity.this, "号码或内容为空,无法发送", 2).show(); } } }); } }
使用Intent可以调用系统中多个方法进行不同需求的配置
下节预报:组件通讯Mesaage
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。