赞
踩
Toast: 是Android系统提供的一种良好的提醒方式,可以将一些短小的信息通知给用户,该信息在一段时间后自动消失,并且不占用任何屏幕空间。
Menu: 菜单显示,能让菜单得到展示的同时,还不占用任何屏幕空间。
应用名称为:MenuTest
活动名称为:MenuActivity
活动对应布局名称:activity_menu
创建完项目和主活动后,仅修改main.xml和MenuActivity.java
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="Add"
/>
<item
android:id="@+id/remove_item"
android:title="Remove"
/>
<!--指定唯一标识符id和菜单项名称-->
</menu>
package com.example.thinkpad.menutest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MenuActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); } @Override //重写该函数,创建菜单 public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.main,menu); //通过getMenuInflater()方法得到MenuInflater对象 //调用该对象的inflate()方法创建菜单 //该方法第一个参数指定通过哪一个资源文件来创建菜单 //第二个参数指定我们的菜单项将要添加到哪一个Menu对象中 return true; //返回true表示允许创建的菜单显示出来,返回false则创建的菜单将无法显示 } @Override //重新该方法,定义菜单响应事件 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.add_item: Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show(); //静态方法makeText()创建一个Toast对象 //第一个参数为Toast要求的上下文 //第二个参数为Toast显示的文本内容 //第三个参数为Toast显示的时长:两个内置常量 //Toast.LENGTH_SHORT && Toast.LENGTH_LONG //show()方法将Toast显示出来 break; case R.id.remove_item: Toast.makeText(this,"You clicked Remove", Toast.LENGTH_SHORT).show(); break; default: } return true; } }
是Android程序中各组件之间进行交互的一种重要方式,不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。一般用于启动活动、启动服务以及发送广播等场景。
//写在按钮的点击事件函数中
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
//构建一个Intent,第一个参数为上下文,第二个参数为目标活动
startActivity(intent);
//Activity类中一个专门用于启动活动的函数
//单击按钮即可从FirstActivity跳转到SecondActivity
隐式Intent并不明确指出想要启动哪一个活动,而是指定一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,帮助我们找到合适的活动启动。
<activity android:name=".SecondActivity" >
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!--只有活动中的<action>和<category>同时匹配上Intent中指定的action和category,该活动才能响应该Intent-->
</activity>
intent.addCategory("com.example.activitytest.MY_CATEGORY");
//给Intent增加一个category
//写在按钮的点击事件函数中
Intent intent = new Intent(Intent.ACTION_VIEW);
//指定intent的action为Intent.ACTION_VIEW
//Intent.ACTION_VIEW是Android系统的一个内置动作
intent.setData(Uri.parse("http://www.baidu.com"));
//通过Uri.parse()方法将网址字符串解析成一个Uri对象
//通过setData()方法将这个Uri对象传递进去
startActivity(intent);
//单击按钮即可打开浏览器进入百度首页
//写在按钮的点击事件函数中
Intent intent = new Intent(Intent.ACTION_DIAL);
//指定intent的action为Intent.ACTION_DIAL
//Intent.ACTION_DIAL是Android系统的一个内置动作
intent.setData(Uri.parse("tel:10086"));
//指定了协议为tel号码为10086
startActivity(intent);
//单击按钮即可拨号10086
android:scheme 用于指定数据的协议部分
android:host 用于指定数据的主机名部分
android:port 用于指定数据的端口部分
android:path 用于指定主机名和端口之后的部分
android:mimeType 用于指定可以处理的数据类型,允许使用通配符的方式进行指定。
String data = "Hello SecondActivity";
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);
//将要传递的数据以键值对暂存于Intent当中
startActivity(intent);
Intent intent = getIntent();
//通过getIntent()获取到用于启动SecondActivity的Intent
String data = intent.getStringExtra("extra_data");
//调用getXxxExtra()传入相应键值获得数据
Log.d("SecondActivity",data);
FirstActivity.java
//写在按钮的点击事件函数中 Intent intent = new Intent(FirstActivity.this,SecondActivity.class); startActivityForResult(intent,1); //第一个参数为Intent,第二个参数为请求码,用于在之后的回调中判断数据的来源 //请求码只要是唯一值就可以了 //重写onActivityResult()方法 @override protected void onActivityResult(int requestCode,int resultCode,Intent data){ //第一个参数为请求码,第二个参数为处理结果,第三个参数为携带返回数据的Intent switch(requestCode){ case 1: if(resultCode == RESULT_OK){ String returnedData = data.getStringExtra("data_return"); Log.d("FirstActivity",returnedData); } break; default: } //由于在一个活动中可能会调用startActivityForResult()来启动很多活动 //所以首先要检查requestCode判断数据来源 //通过resultCode判断处理结果是否成功 }
SecondActivity.java
//写在按钮的点击事件函数中 Intent intent = new Intent(); intent.putExtra("data_return","Hello FirstActivity"); setResult(RESULT_OK,intent);//专门用于向上一个活动返回数据 //第一个参数用于向上一个活动返回处理结果,一般为RESULT_OK或者RESULT_CANCELED //第二个参数则把带有数据的Intent传递回去 finish(); //重写onBackPressed()方法,防止因按下Back键返回活动,导致数据没有传回 @override public void onBackPressed(){ Intent intent = new Intent(); intent.putExtra("data_return","Hello FirstActivity"); setResult(RESULT_OK,intent); finish(); }
整理学习自郭霖大佬的《第一行代码》
目前小白一名,持续学习Android中,如有错误请批评指正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。