Activity(undone)
来源:互联网 发布:台湾海军实力 知乎 编辑:程序博客网 时间:2024/06/03 04:34
从来没写过日记,一直太忙了,没有时间闲下来,总在效率和深度上摇摆,然后还是妥协的选择了效率。
然而最近去参加面试,遇到两个面试官很年轻,问到的问题都是很细节的东西,自己以前知道或者明明了解过,却脑袋一片空白,才知道细节决定成败。之前的效率还是不牢靠的。
面试真是一个快速了解的过程,通过和其他人交手,就会露出破绽。
学到很多。
世界这么大,我还有很多理想没有完成。
它们的主页:http://www.ttigame.com/
希望半年后可以做出他们的东西出来。。。。
首先是四大组件之一的Activity(viewDetcter),它是用于展示界面的和用户交互,它可以显示一些控件(view的显示流程),也可以监听并处理用户的事件并做出响应(观察者模式).
这个有点像web中的主页面和主页面里面点击超链接跳转到其他界面。
首先做一个Activity:
1.要定义继承Activity
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView (R.layout.activity_main); }
2.在AndroidManifest.xml的application节点中声明<Activity>
清单文件的重要参数
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
application:中lable是指程序的名字,在卸载页面显示的名字就是这个lable指定的。
Activity中的lable是指activity的名字,
Action:指定操作的动作
Category:指定意图的类别, Launcher是在桌面创建快捷方式。CAR_DOCK,CAR_MODE就和车载相关
如果此activity还指定了:以下intentfilter,那么这个界面就会在桌面创建快捷方式,快捷方式名字就是这个activity的lable
<intent-filter> <action android:name="android.intent.action.MAIN" />代表应用程序的入口界面 <category android:name="android.intent.category.LAUNCHER" />代表桌面上的快捷方式 </intent-filter>
Tips:
- 去掉Activity应用程序就没有界面了
- 删除intent-filter节点 对应的Activity界面就看不到了,就被隐藏掉了
- 可以有多个intent-Filter见系统源码中browser.
- activity的xml文件,一般尽量以activity_xxx.xml来命名
一个应用程序可以在桌面上产生多个快捷图标
增加第二个Activity,在清单文件里也配成action.MAIN;category.LAUNCHER就会在桌面上出现两个图标
Tips:比如Android系统中的联系人和拨号应用就是同一个应用对应着不同的快捷图标
A界面跳转B并传递数据 –intent
如果没有在清单文件中声明intent-filter跳转的时候Activity就会报ActivityNotFindException.
new 一个 intent,startActivity(intent);
有两种跳转的方法
显式意图
根据intent的有参构造函数Intent.Intent(Context packgeContext ,Class <?> cls字节码 );
优点:代码编写简单,不需要在清单文件中配置 意图过滤器 intent-filter,效率很高。
缺点:代码的耦合性比较强。高内敛 低耦合。
应用场景: 自己应用程序开启自己的界面 推荐使用显示意图。
1.1 Intent intent = new Intent(); intent.setClassName("com.intent", "com.intent.SecondActivity");//类名必须是全路径 startActivity(intent); 1.2 Intent intent = new Intent(this,SecondActivity.class);startActivity(intent);//方便的写法
隐式意图
在代码里面设置intent的action和data,框架通过解析清单文件找到Activity然后开启
// 跳转到第二个界面Intent intent = new Intent(); intent.setAction("com.itheima.rpcalc.CALC"); intent.setData(Uri.parse("calc://"+et_name.getText().toString()));startActivity(intent);
应用场景:开启别人应用程序的界面隐式意图.自己的某个界面,想让别的应用程序开启
//显示意图 不需要配置IntentFilter Intent intent = new Intent(MainActivity.this, Main2Activity.class); intent.setData(Uri.parse("calc://" + name)); startActivity(intent); finish();对应的 String data = getIntent().getData().toString(); data = data.replace("calc://", "");//因为这个的结果是calc://data //隐式意图 需要配置IntentFilter Intent intent = new Intent(); intent.setAction(".Main2Activity"); intent.setData(Uri.parse("rp://" + name)); startActivity(intent); finish(); 清单文件: <activity android:name=".Main2Activity" android:label="@string/title_activity_main2"> <intent-filter> <action android:name=".Main2Activity" /> <data android:scheme="rp" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>获得数据 String data = getIntent().getData().toString(); data = data.replace("rp://", ""); result.setText(data);
之前做过 调用打电话的intent Intent.Action_Call点击看源码就知道 其实是一个字符串
如果要自定义意图,就添加intent filter意图过滤器
`这个就是自定义的,当然可以任意命名,但是实际上我们一般的命名规则是包名.类名.意图的意思.方便辨认。
我们写过“tel:(命名空间,语法前缀)//的”
这个是系统的如果要自定义的话就要在声明一个在Activity中 <data android:scheme="calc"/>
然后再获取数据intent.getData获取数据再toStirng把uri转成字符串 得到传来的值是calc://edittext的内容
那再data.subString(“/”) 来 ,但是这样如果名字有前缀怎么办?
就用data.replace()
其实每个姓名每个中文字符用一种编码转化为int类型的数值,加起来100求余可能是正的可能是负数就取绝对值,就得到0~100之间的数值。
- Activity(undone)
- undone
- ListView(undone)
- ActionBar(Undone)
- Filter(undone)
- MappingJackson2HttpMessageConverter(undone)
- 解题 UVA 10081 Undone
- undone有关链表
- undone搜索总论
- 【HTML】基础知识【UNDONE】
- 【HTML】HTML数据类型【UNDONE】
- recycleView的理解(UNDone)
- ZOJ 1086Octal Fractions undone
- 【HTML】文档整体结构【UNDONE】
- Windows Office Product Files Parse @ J2EE [undone]
- 最长公共子串-poj-2274-undone
- googlesamples/android-topeka学习笔记(三)-----undone
- LDA, 文档主题生成模型 (undone)
- C++函数指针简介
- U-boot-2010.09移植(六)NAND Flash启动支持
- codevs 1183 泥泞的道路
- linux下打开、关闭tomcat,实时查看tomcat运行日志
- 面向切面编程AOP作用
- Activity(undone)
- 安装部署Sonar+jacoco,生成case覆盖率统计报告
- S3c2440如何利用JLINK烧写U-boot到NAND Flash中
- 九度OJ 1143:Primary Arithmetic(初等数学) (进位)
- U-boot中常用参数设定及常用宏的解释和说明
- 51nod 石子归并 (dp)
- http头部
- 菜鸟前端之路笔记2——XHTML基础知识
- Linux内核释放内存以后,可能会把其值设置为0x6b