第一行代码 ( 第二章 Activity )
一.在AndroidManifest文件中注册activity并声明启动activity(Android Studio会自动帮我们生成)
//主活动设置的label不仅会成为标题栏的内容,还会成为启动器(Launcher)中应用程序显示的名称。
二.Toast的使用 使用静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来,注意:makeText()需要传入三个参数,第一个是Context,即Toast要求的上下文,第二个是你要展示的提示的内容·,第三个参数是Toast显示的时长。(有两个内置常量可以选择:Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG)。
Toast.makeText(FirstActivity.this,"这里是你要显示的内容(字符串形式)",Toast.LENGTH_SHORT).show();
三.在活动中使用Menu 步骤:
(1)在res目录下新建一个menu目录,再在这个目录新建Menu resource file的菜单文件;
(2)在菜单文件中添加代码设置menu的下拉菜单项选项:
(3)在Activity中重写onCreateOptionsMenu():通过getMenuInflater()能够得到MenuInflater对象,再调用它的inflater()就可以给当前活动创建菜单。inflater()接收两个参数,第一个参数指定通过哪一个资源文件创建菜单,第二个直接用传入的menu参数即可。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.test_menu, menu);
return true;
}
(4) 在Activity中重写onOptionsItemSelected():通过调用item.getItemId()来判断我们点击的是哪一个菜单项(比如对应上面item的"R.id.item1"),再进行我们想要的操作,至此,大功告成。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
Toast.makeText(FirstActivity.this, "你点击了item1这个菜单项", Toast.LENGTH_SHORT).show();
finish();
//手动调用方法销毁当前活动
break;
default:
break;
}
return true;
}
四.使用Intent实现活动间的跳转以及数据传递 【第一行代码 ( 第二章 Activity )】(1)显式Intent实现跳转:(第一个参数是启动活动的上下文,第二个参数是你想要启动的目标活动)
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent =new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
}
});
(2)隐式Intent实现跳转:通过在activity标签下配置intent-filter,可以指定当前活动能够响应的action和category:
然后在FirstActivity中:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent("com.example.activitytest.ACTION_START");
startActivity(intent);
//因为上面那个category是默认的,在调用startActivity()会自动添加这个category
}
});
其他隐式Intent用法(跳转到其他程序的活动):
通过Uri.parse将一个网址字符串解析成一个Uri对象,然后再调用Intent的setData()将这个Uri对象传递进去。
例子1:打开手机浏览器,进入百度
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent(Intent.ACTION_VIEW);
//这是Android系统内置的动作
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
例子2:拨打电话10086
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
}
});
实现数据传递
通过putExtra(),以左键右值的形式,将想传递的数据暂存在Intent中;启动另一个活动后,通过getIntent()方法获取到用于启动当前这个活动的Intent,然后调用getStringExtra()或是其他的方法(看传过来的数据是什么格式,如整型用getIntExtra()),传入相应的键值就可以获得传递的数据了。FirstActivity代码如下:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data="https://www.it610.com/article/hello putExtra"
Intent intent =new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);
startActivity(intent);
}
});
SecondActivity代码如下:(待更新)
public class SecondActivity
推荐阅读
- 第6.2章(设置属性)
- CVE-2020-16898|CVE-2020-16898 TCP/IP远程代码执行漏洞
- 2018-02-06第三天|2018-02-06第三天 不能再了,反思到位就差改变
- 第三节|第三节 快乐和幸福(12)
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- android第三方框架(五)ButterKnife
- 开学第一天(下)
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 第326天