2.1 活动是什么
活动(Activity)是最容易吸引到用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互
2.2 活动的基本用法
2.2.1 手动创建活动
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
2.2.2 创建和加载布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.rescue.firstrowcode.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
2.2.3 在AndroidManifest文件中注册
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rescue.firstrowcode">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
2.2.4 隐藏标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE); //设置无标题
2.2.5 在活动中使用Toast
Toast.makeText(this,"这是一个toast",Toast.LENGTH_SHORT).show();
2.2.6 在活动中使用Menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add_item:
Toast.makeText(this, "your clicked add ", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this,"yourt clicked remove ", Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
2.2.7 销毁一个活动
bt_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
使用Intent在活动之间穿梭
在各个活动之间穿梭,有二次方式,一种是显式,一种隐式,注意:显式穿梭是在自己的项目中,没必要要用隐示,而隐式主要是在被人的项目中的Activity之间穿梭,比如我们要是调用打电话功能,肯定是调用系统的电话activity中去,这个就要用隐式。
使用显式Intent
我们从activitty_A 穿梭到activity_B 中:
private Button bt_click;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); //设置无标题
setContentView(R.layout.activity_main);
bt_click = (Button) findViewById(R.id.bt_click);
Toast.makeText(Activity_A.this,"这是一个Toast",Toast.LENGTH_SHORT).show();
bt_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// finish();
Intent intent = new Intent(Activity_A.this,Activity_B.class);
startActivity(intent);
}
});
}
使用隐示Intent
- 先配置要隐示的Activity
<activity android:name=".Activity_B">
<intent-filter>
<action android:name="com.example.myapplication.b"></action>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
- java代码
Intent intent = new Intent("com.example.myapplication.b");
startActivity(intent);
更多隐示Intent的用法
1. android:scheme
用于指定数据的协议部分
2. android:host
用于指定数据的主机名部分
3. android:port
用于指定数据的端口部分,一般紧随在主机名之后
4. android:path
用于指定主机名和端口部分,一般网址中跟在域名之后的内容
5. android:mineType
用于指定可以处理的数据类型,使用通配符的方式进行指定\
2.3.4 向下一个活动传递数据
步骤:
1>数据收集
首先我们要收集我们用传递的数据,进行findbyId(), 进行基本类型来暂时存放
EditText et_content = (EditText) findViewById(R.id.et_content);
String content = et_content.getText().toString(); //收集数据
2>数据存储
对于存储是有个容器,有很多种,这里不做说明,大家只需要记住一句话:采用键值对来存储
Intent intent = new Intent(MainActivity_A.this, MainActivity_B.class); //从A -- B 传递数据
intent.putExtra("data", content); //键 : data 值 : content
3> 数据发送
发送数据,是依赖acitivity的,活动调转,数据也是随着而去的actiivty中了
startActivity(intent);
4>数据接收
接收,首先我们要获取Intent,这个对象其实就是一个信使,它身上带着书信,得到信使,信息自然就得到了,之后我们输入我们的密码,然后打开,密码就是我们的键!
TextView desc = (TextView) findViewById(R.id.desc);
Intent intent = getIntent(); //得到信使
String content = intent.getStringExtra("data");
desc.setText(content);
需要代码,请下载 https://github.com/RelocationTime/p2_51.git
时间: 2024-10-03 13:27:54