中海外交通建设有限公司网站,wordpress博客主题推荐,怎么给网站做开场动画,做房地产销售的基础知识Android中的意图包含多种用法#xff0c;本文主要包括以下内容
显式意图 隐匿意图 要求结果回传的意图
显式意图 #xff1a;必须指定要激活的组件的完整包名和类名 #xff08;应用程序之间耦合在一起#xff09; 一般激活自己应用的组件的时候 采用显示意图
隐式意…Android中的意图包含多种用法本文主要包括以下内容
显式意图 隐匿意图 要求结果回传的意图
显式意图 必须指定要激活的组件的完整包名和类名 应用程序之间耦合在一起 一般激活自己应用的组件的时候 采用显示意图
隐式意图 只需要指定要动作和数据就可以 好处应用程序之间没有耦合 激活别人写的应用 隐式意图 不需要关心对方的包名和类名
显式意图
//意图 开电视 打人 打酱油Intent intent new Intent(this, CalcActivity.class);intent.putExtra(name, name);//显式意图//intent.setClassName(getPackageName(), com.itheima.rpcalc.CalcActivity);//不指定动作也不指定数据 直接指定要激活的组件startActivity(intent);
显式意图接收
public class CalcActivity extends Activity {private TextView tv_result;//当activity被创建的时候调用的方法Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_calc);tv_result (TextView) findViewById(R.id.tv_result);Intent intent getIntent();String name intent.getStringExtra(name);byte[] result name.getBytes();int number 0;for(byte b :result){number b0xff;}int sorce Math.abs(number)%100;tv_result.setText(name的人品sorce);}
}
隐式意图
隐式意图只要设置action与data即可
要实现隐式意图首先要在Manifest文件中配置action,category,mimetype等
activity android:namecom.itheima.intent2.SecondActivity intent-filteraction android:namecom.itheima.intent2.open2 /category android:nameandroid.intent.category.DEFAULT /data android:mimeTypeapplication/person /data android:schemejianren //intent-filter/activity隐式意图的实现
public void click(View view) {// 打 action// 人 数据// 附件的数据 Category 类别Intent intent new Intent();intent.setAction(com.itheima.intent2.open2);intent.addCategory(Intent.CATEGORY_DEFAULT);// URL:统一资源定位符 http https ftp rtsp: URI统一资源标识符 url是uri的一个子集// intent.setData(Uri.parse(jianren:张三)); setData与setType是对立的不能同时使用同时使用时要用setDataAndType// intent.setType(application/person);intent.setDataAndType(Uri.parse(jianren:张三), application/person);startActivity(intent);}
使用隐式意图打开浏览器的一个例子
浏览器的属性配置如下
intent-filteraction android:nameandroid.intent.action.VIEW /category android:nameandroid.intent.category.BROWSABLE /category android:nameandroid.intent.category.DEFAULT /data android:schemehttp /data android:schemehttps /data android:schemeinline /data android:mimeTypetext/html/data android:mimeTypetext/plain/data android:mimeTypeapplication/xhtmlxml/data android:mimeTypeapplication/vnd.wap.xhtmlxml//intent-filter
利用隐式意图实现 public void click(View view){
// action android:nameandroid.intent.action.VIEW /
// category android:nameandroid.intent.category.DEFAULT /
// category android:nameandroid.intent.category.BROWSABLE /
// data android:schemehttp /
// data android:schemehttps /
// data android:schemeabout /
// data android:schemejavascript /Intent intent new Intent();intent.setAction(android.intent.action.VIEW);intent.addCategory(android.intent.category.DEFAULT);intent.addCategory(android.intent.category.BROWSABLE);intent.setData(Uri.parse(http://www.baidu.com));startActivity(intent);}
得到返回值的Intent实现,短信助手实例
public class MainActivity extends Activity {private EditText et_content;private EditText et_number;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_content (EditText) findViewById(R.id.et_content);et_number (EditText) findViewById(R.id.et_number);}public void selectSms(View view) {Intent intent new Intent(this, ListSmsActivity.class);// 开启一个新的界面并且获取界面的返回值// startActivity(intent);// int requestCode 请求码startActivityForResult(intent, 0);}public void selectNumber(View view) {Intent intent new Intent(this, ListNumberActivity.class);// 开启一个新的界面并且获取界面的返回值// startActivity(intent);// int requestCode 请求码startActivityForResult(intent, 1);}Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (data ! null) {String smsinfo data.getStringExtra(smsinfo);if (resultCode 0) {et_content.setText(smsinfo);} else if (resultCode 1) {et_number.setText(smsinfo);}}super.onActivityResult(requestCode, resultCode, data);}public void sendSms(View view){String content et_content.getText().toString().trim();String number et_number.getText().toString().trim();SmsManager.getDefault().sendTextMessage(number, null, content, null, null);Toast.makeText(this, 发送成功, 0).show();}
}
编辑短信
public class ListSmsActivity extends Activity {private ListView lv;private String[] objects {玫瑰香香情人黏黏情话甜甜情歌绵绵花灯灿灿礼花点点好运连连好梦圆圆。情人节喜逢元宵节喜鹊登枝蝴蝶成双鸳鸯成对双喜临门祝双节快乐合家团团圆圆甜甜蜜蜜开开心心幸幸福福,情人节快到了我精心挑选玫瑰花、百合花和满天星扎成一束鲜花随短信送给你火红的玫瑰代表热烈奔放洁白的百合代表百年好合小小的满天星代表幸福美好。愿你的情人节热烈奔放你们的爱情百年好合你们的生活幸福美满。预祝情人节快乐,^o^满天星光最爱你许过愿望的那一颗鲜花绽放最爱你摘下微笑的那一朵曼妙旋律最爱你感动落泪的那一段亲爱的情人节快乐爱你。 ,^o^宝贝情人节到了送你一束玫瑰用真心塑料纸包扎系上快乐彩带喷点爱的香水插一张真情卡片写着宝贝愿我的爱能带给你一生的快乐 };Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sms);lv (ListView) findViewById(R.id.lv);lv.setAdapter(new ArrayAdapterString(this, R.layout.sms_item,R.id.tv_info, objects));lv.setOnItemClickListener(new OnItemClickListener() {Overridepublic void onItemClick(AdapterView? parent, View view,int position, long id) {String smsinfo objects[position];Intent data new Intent();data.putExtra(smsinfo, smsinfo);//设置数据。setResult(0, data);//关闭掉当前的activity并且回传数据 onActivityResult().finish();}});}
}
选择联系人
public class ListNumberActivity extends Activity {private ListView lv;private String[] objects {1234,34324,5643543,32424 };Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sms);lv (ListView) findViewById(R.id.lv);lv.setAdapter(new ArrayAdapterString(this, R.layout.sms_item,R.id.tv_info, objects));lv.setOnItemClickListener(new OnItemClickListener() {Overridepublic void onItemClick(AdapterView? parent, View view,int position, long id) {String smsinfo objects[position];Intent data new Intent();data.putExtra(smsinfo, smsinfo);//设置数据。setResult(1, data);//关闭掉当前的activity并且回传数据 onActivityResult().finish();}});}
}
完成