Android Activity探究活动
来源:互联网 发布:javascript 输入 赋值 编辑:程序博客网 时间:2024/05/16 15:16
活动
活动是什么
- 活动是包含用户界面的组件 ,用于和用户交互,一个应用程序可以有0个或多个活动
创建活动
- 空白layout和 no activity 创建后 onCreat()已经自动重写
- 创建和加载布局 新建layout目录,新建layout文件 layout文件下有 可视化布局(Design)和Text
- 在布局layout文件中添加button 控件, 定义 button的ID ,尺寸 , text .甚至可以定义background 等
- 要在java文件中添加代码使布局加载
setOnCreatView(R.layout.xxx_layout)
在AndroidManifest文件中注册
部分代码已经自动生成
- 要在<acticity></activity>
中添加<intent-filter>
- android:lable 可以改变标题栏,主活动的话同时改变应用程序显示名称
```java <activity android:name=".FirstActivity" android:label="This is FirstActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
在活动中添加Toast
- 在java文件中找到在布局中定于的button
findViewById()
- 添加监听器
onClick()
setOnClickListener()
- Toast 方法 makeText 显示 ,传入三个参数
(ConText对象,显示文字,显示时间).show();
在活动重添加Menu —- 右上角三点
在res目录新建menu目录,新建main菜单文件
xml
<item
android:id="@+id/add_item"
android:title="Add"/>
<item
android:id="@+id/remove_item"
android:title="Remove"/>- 在FirstActicity中重写onCreatOptionsMenu()
java
public boolean onCreatOptionsMenu(){
getMenuInflater().inflate(R.menu.main , menu);
return true;
} - 定义Menu响应事件,在FirstActivity重写onOptionsItemSelected()
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.add_item: Toast.makeText(this,"You click add",Toast.LENGTH_SHORT).show(); break; case R.id.remove_item: Toast.makeText(FirstActivity.this,"You click remove",Toast.LENGTH_SHORT).show(); break; default: } return true;}
- 在FirstActicity中重写onCreatOptionsMenu()
销毁一个活动 Activity
finash();
使用Intent在活动件穿梭
显式Intent
- 在FirstActivity重写 onCreat
- 添加Button鼠标监听(看前面)
- Inentt(上下文,目标活动)
使用startActivity()方法来执行intent
Intent intent = new Intent(FirstActivity.this,SecendActivity,class);startActivity(intent);
- 隐式Intent
- 在AndroidManifest.xml中添加
<activity> <intent inflater>
<activity android:name=".SecendActivity"> <intent-filter> <action android:name="com.example.mason.activity.ACTION_START"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="com.example.mason.activity.MY_CATEGORY"/> </intent-filter></activity>2. 修改FirstActivity0中按钮点击事件```javaIntent intent = new Intent("com.example.mason.activity.ACTION_START");ntent.addCategory("com.example.mason.activity.MY_CATEGORY");startActivity(intent);
- 在AndroidManifest.xml中添加
只能指定一个action,但是可以指定多个category,要相互匹配,在FirstActivity和AndroidManifest都要有
- 更多隐式Intent用法
- 指定Intent的action是Intent.ACTION_VIEW ,常量值是android.intent.action.VIEW
- 通过setData 和 Uri.parse() 将一个网址字符串解析成一个Uri对象,主要用于指定当前Intent正在操作的数据
在 中可以配置 标签 指定当前活动 响应什么类型数据
打开网址
Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse(http://github.com));startActivity(intent);
tel:
Intent intent = new Intent(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:10086"));startActivity(intent);
- 隐式Intent
向下一个活动传递数据
- FirstActivity putExtra()方法
- SecendActivity getIntent 获取Intent
- getStringExtra() 传入获取相应键值 getIntExtra() getBooleanExtra()
在logcat查看打印信息
“`java
FirstActivity:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data = “Hello SecondActivity”;
Intent intent = new Intent(FirstActivity.this,SecendActivity.class);
intent.putExtra(“extra_data”,data);
startActivity(intent);
}
});SecondActivity:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secend_activity);
Intent intent = getIntent();
String data = intent.getStringExtra(“extra_data”);
Log.d(“SecondActivity”, data);
}
返回数据给上一个活动
这是我学习Android的笔记,参考书<<第一行代码-第二版>>,感谢郭霖大神
如有不足之处,可以一起讨论
附上郭霖的blog http://blog.csdn.net/guolin_blog
- Android Activity活动探究
- Android Activity探究活动
- 探究活动-Activity
- Android学习,探究活动
- Android(探究活动)
- Android : 手动探究活动
- Android 一一 探究活动
- 第二章 探究活动(Activity)
- Android - Activity(活动) 详解
- Android Activity活动生命周期
- android之activity(活动)
- Android 活动(Activity)
- Android学习笔记4:探究活动1
- Android学习笔记5:探究活动2
- 第 2 章 探究Android活动
- Android 活动对象(Activity) 复习
- Android之活动(Activity)
- android Activity(活动)详解
- mysql 连接失败:SQLSTATE[HY000] [2003] Can't connect to 公网服务器
- UsacoTraining Chapter1.3 Milking Cows
- 【C++】使用new新建动态二维数组
- angular简单随机选择
- Java设计模式之享元模式
- Android Activity探究活动
- PageRank算法 到 textRank
- 【考研】第十四周总结
- 在notebook中使用pyspark遇到的问题
- 有趣的理解面向对象之封装!
- 史上最简单的 MySQL 教程(四十)「数据库变量」
- 使用Tomcat实现Java连接池(解决main中不能够调用问题)
- TCP三次握手&四次分手抓包分析
- JS的闭包