知识库

wiki.linsakura.com

用户工具

站点工具


wiki:book:notes:android:第一行代码-android-第2版-郭霖:第2章-先从看得到的入手-探究活动

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
wiki:book:notes:android:第一行代码-android-第2版-郭霖:第2章-先从看得到的入手-探究活动 [2022/04/06 13:20]
博丽幻月
— (当前版本)
行 1: 行 1:
-====== 第2章 先从看得到的入手——探究活动 ====== +
-**活动Activity**\\ +
-主要用于和用户进行交互。\\ +
----- +
-**启动的主活动**\\ +
-在''<activity>''标签的内部加入''<intent-filter>''标签,添加下面两句声明即可:\\ +
-<code xml> +
-<action android:name="android.intent.action.MAIN" /> +
-<category android:name="android.intent.category.LAUNCHER" /> +
-</code> +
----- +
-**通知消息Toast**\\ +
-用途:将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。\\ +
-<code java> +
-Button button1 = (Button) findViewByid(R.id.button_1); +
-button1.setOnClicklistener(new View.OnClicklistener() { +
-    @Override +
-    public void onClick(View v) { +
-        Toast.makeText(FirstActivity.this, "你点击了Button1", Toast.LENGTH_SHORT).show(); +
-    } +
-}); +
-</code> +
-可以通过''findViewById()''获取布局文件中定义的元素。\\ +
-''setOnClicklistener()''方法为按钮注册一个监听器,点击按钮时就会执行监听器中的''onClick()''方法。\\ +
----- +
-**活动中使用Menu**\\ +
-''getMenuinflater()''方法能够得到''Menuinflater''对象,再调用它的''inflate()''方法就可以给当前活动创建菜单。\\ +
----- +
-**销毁一个活动**\\ +
-''finish()''\\ +
----- +
-**Intent交互**\\ +
-Intent是Android程序中各组件之间**进行交互**的一种重要方式,它不仅可以指明当前组件**想要执行的动作**,还可以在不同组件之间**传递数据**。\\ +
-Intent一般可被用于**启动活动**、**启动服务**、**发送广播**等场景。\\ +
-Intent分两种:显示Intent、隐式Intent。\\ +
----- +
-**使用隐式Intent**\\ +
-<code java> +
-intent.addCategory("com.exampte.activitytest.MY_CATEGORY"); +
-</code> +
-<code xml> +
-<activity android:name=".SecondActivity"+
-    <intent-filter> +
-        <action android:name="com.example.activitytest.ACTION_START" /> +
-        <category android:name="android.intent.category.DEFAULT" /> +
-        <category android:name="com.exampte.activitytest.MY_CATEGORY"/> +
-    </intent-filter> +
-</activity> +
-</code> +
----- +
-**更多隐式Intent用法**\\ +
-不仅可以启动自己程序内的活动,还可以启动其他程序的活动。\\ +
-<code java> +
-//调用系统浏览器打开网页 +
-Intent intent = new Intent(Intent.ACTION_VIEW); +
-intent.setData(Uri.parse("http://www.baidu.com")); +
-</code> +
-<code java> +
-//调用系统拨号界面 +
-Intent intent = new Intent(Intent.ACTION_DIAL); +
-intent.setData(Uri.parse("tel:18886")); +
-</code> +
----- +
-**向下一个活动传递数据**\\ +
-使用''putExtra()''存放数据到intent:\\ +
-<code java> +
-String data = "Hello SecondActivity"; +
-Intent intent = new Intent{FirstActivity.this, SecondActivity.class); +
-intent.putExtra("extra_data", data); +
-</code> +
-使用''getStringExtra()''获取数据:\\ +
-<code java> +
-Intent intent = getIntent(); +
-String data = intent.getStringExtra("extra_data"); +
-</code> +
----- +
-**返回数据给上一个活动**\\ +
-FirstActivity按钮onClick()中添加:\\ +
-<code java> +
-Intent intent = new Intent(FirstActivity.this, SecondActivity.class); +
-startActivityforResult(intent, 1); +
-</code> +
-''startActivityForResult()''方法接收两个参数,第一个参数还是Intent, 第二个参数是**请求码**,用于在之后的**回调中判断数据的来源**。\\ +
-SecondActivity按钮onClick()中添加:\\ +
-<code java> +
-Intent intent = new Intent(); +
-intent.putExtra("data_return", "Hello FirstActivity"); +
-setResult(RESULT_OK, intent); +
-</code> +
-调用了''setResult()''方法。这个方法非常重要,是专门**用于向上一个活动返回数据**的。\\ +
-SecondActivity销毁后,在FirstActivity中判断:\\ +
-<code java> +
-@Override +
-protected void onActivityResult(int requestCode, int resultCode, Intent data) { +
-    switch (requestCode) { +
-    case 1: +
-        if (resultCode == RESULT_OK) { +
-        String returnedData = data.getStringExtra("data_return"); +
-        Log.d("FirstActivity", returnedData); +
-        break; +
-    default: +
-    } +
-+
-</code> +
-如果使用''Back键''回到FirstActivity,则重写SecondActivity中的''onBackPressed()''方法即可。\\ +
----- +
-**TBD**\\+
wiki/book/notes/android/第一行代码-android-第2版-郭霖/第2章-先从看得到的入手-探究活动.1649222420.txt.gz · 最后更改: 2022/04/06 13:20 由 博丽幻月