安卓四大组件之一-----活动
来源:互联网 发布:知止而有得 编辑:程序博客网 时间:2024/06/12 18:12
活动(Activity)
1)活动创建(onCreate方法)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);//加载xml布局文件
}
2)Toast使用方法
Toast:是安卓里面的一个提醒方式
用法:Toast.makeText(this, "Toast用法", Toast.LENGTH_SHORT).show();
3)Menu菜单的使用
我们经常使用一些APP,发现点击屏幕右上角将会出现一栏菜单栏。如下图所示
,今天我们就来学习一下如何使用Menu菜单。
首先在res目录下新建一个menu文件夹,右击menu文件夹,新建Menu resource file文件,完成创建。
添加以下代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<!--创建两个菜单项-->
<item
android:id="@+id/create_item"
android:title="创建群聊"/>
<item
android:id="@+id/add_item"
android:title="加好友/群"/>
<item
android:id="@+id/find_item"
android:title="扫一扫"/>
<item
android:id="@+id/translate_item"
android:title="面对面快传"/>
<item
android:id="@+id/pay_item"
android:title="付款"/>
<item
android:id="@+id/camara_item"
android:title="拍摄"/>
</menu>
然后在MainActivity.java文件里面添加以下代码
/*
创建菜单
通过getMenuInflater()得到MenuInflater对象,再调用inflate方法 获取到menu.xml文件
创建菜单
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);//获取到menu.xml文件
return true;//true 表示允许菜单显示出来 false则不允许菜单显示出来
}
/*
重写onOptionsItemSelected()方法
通过item.getItemId()来判断点击的是哪个菜单项
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.create_item:
Toast.makeText(MainActivity.this, "创建群聊成功!", Toast.LENGTH_SHORT).show();
break;
case R.id.add_item:
Toast.makeText(MainActivity.this, "加好友/群", Toast.LENGTH_SHORT).show();
break;
case R.id.find_item:
Toast.makeText(MainActivity.this, "你点了MENU的ADD键", Toast.LENGTH_SHORT).show();
break;
case R.id.translate_item:
Toast.makeText(MainActivity.this, "你点了MENU的Remove键", Toast.LENGTH_SHORT).show();
break;
case R.id.pay_item:
Toast.makeText(MainActivity.this, "你点了MENU的ADD键", Toast.LENGTH_SHORT).show();
break;
case R.id.camara_item:
Toast.makeText(MainActivity.this, "你点了MENU的Remove键", Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
4)显示Intent使用(以安卓的启动界面为例)
Intent方法,可以创建一个活动并且自主跳转到另一个活动。而点开APP看到的启动界
Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SecondActivity.actionStart(FirstActivity.this, "data1", "data2");
}
});
首先新建一个Start_Activity工程。
新建一个StartActivity活动(在MainActivity同一目录的文件夹上,右键新建Empty Activity),android stdio会自动生成一个 activity_start.xml文件
在activity_start.xml文件上做启动界面
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/red"
android:weightSum="1">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="167dp"
android:text="这是一个启动界面,当然也可以使用ImageView加载图片"
android:textSize="30sp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_marginRight="21dp" />
</RelativeLayout>
在StartActivity.java文件使用onCreate方法,使用Handler方法(具体方法看消息处理机制一讲)延迟3秒,使用Intent方法进入主界面
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
/*
延迟三秒跳转 到MainActivity.class上
*/
new Handler().postDelayed(new Runnable() {
public void run() {
/* Create an Intent that will start the Main WordPress Activity. */
Intent mainIntent = new Intent(StartActivity.this, MainActivity.class);//使用Intent方法,跳转到MainActivity界面
StartActivity.this.startActivity(mainIntent);//启动跳转
StartActivity.this.finish();//销毁启动界面
}
}, 3000);
}
5)隐式Intent
隐式Inten不会明确指定我们要启动哪一个活动,而是指定一系列更为抽象的action和category等信息,然后交由系统去分析这个intent,并帮我们找出合适的活动去启动。
合适的活动:在AndroidManifest.xml文件中添加以下代码
<activity
android:name=".SecondActivity"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在action的标签中,我们指明了当前活动可以响应com.example.activitytest.ACTION_START这个action,而<category>则包含了附加的信息,更能精确的指明当前的活动能够响应Intent中还可能带有的categoriy.注意:只有当<action>和<categoriy>中的内容同时能够匹配上指定的action和category时活动才能响应!
修改MainActivity中的跳转界面方法
/*
延迟三秒跳转 到MainActivity.class上
*/
new Handler().postDelayed(new Runnable() {
public void run() {
/* Create an Intent that will start the Main WordPress Activity. */
Intent mainIntent = new Intent(“com.example.activitytest.ACTION_START”);//使用Intent方法,跳转到MainActivity界
startActivity(mainIntent);
StartActivity.this.finish();//销毁启动界面
}
}, 3000);
6)活动中传递数据方法
Context 一个类 data1、data2为要传入到Context类的数据
public static void actionStart(Context context, String data1, String data2) {
Intent intent = new Intent(context, NewsContentActivity.class);
intent.putExtra("data1", data1);
intent.putExtra("data2",data2);
context.startActivity(intent);
}
在进入的下一个界面
通过使用getIntent()方法获取到用于启动的SecondActivity的Intent,然后调用getStringExtra()方法,传入相应的键值即可以互相传递数据。
MainActivity.actionStart(FirstActivity.this,”data1”,”data2”);//向FirstActivity传递数据
在FirstActivity里面取出数据
Intent intent = getIntent();
String data1 = intent.getStringExtra(“data1”," ");获取到上一界面传递过来的参数 最后一个“ ”是当没有找到这个数据时给它的默认的值
String data2 = intent.getStringExtra(“data2”," ");获取到上一界面传递过来的参数
- 安卓四大组件之一-----活动
- 安卓四大组件----活动
- 安卓四大组件之一Activity
- 安卓四大组件之一 -------------------Activity_生命周期
- 安卓四大组件之一service
- 安卓 四大组件之一 广播 BroadcastReceiver
- Android四大组件之一活动(一)
- 初学浅谈安卓四大组件之一:Activity
- 安卓四大组件之一Activity的生命周期
- 安卓四大组件之一ContentProvider内容提供者
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 模板方法模式(组件协作)
- 剑指offer: 二叉树的下一个结点
- python basic configuration in linux
- python selenium常见问题之一
- mina传输实现数据推送
- 安卓四大组件之一-----活动
- matlab实现PS算法之自动色阶
- Spring--装配普通属性
- linux高端内存
- OpenCV:OpenCV目标检测Adaboost+haar源代码分析
- mysql大数据分库和分表 php解决方案
- 桥梁模式(单一职责)
- Linux最常用的命令总结
- houdini中产生场景深度图