IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 2021-09-28 -> 正文阅读

[移动开发]2021-09-28

Android之Activity
下面分为原理趣讲和实际案例
原理:
只有创建意图后指定下一个跳转在哪才能跳转,就语句
Intent intent = new Intent(MainBActivity.this,MainCActivity.class);
做题步骤
1,先创layout(这一步只要创建新的空的Activity则能在三步中均能创
建相关代码)
2,写代码.java
3,manifest里添加页面

用intent跳转页面,用bundle传递数据

两个界面单向传数据
用intent(快递包装盒),bundle(包裹),startActivity(单向邮局)
寄件人需要在快递包装盒写地址,就是new Intent(MainBActivity.this,MainCActivity.class);
收件人首先通过getIntent.getExtras(取件码)从邮局取到包裹,再打开包裹完成相应的功能

多个界面的双向传数据
寄件人的快递包装盒,包裹的功能不变,邮局变为startActivityForResult有双向寄件的邮局
同时还应该在往返车里指定收件人的名字(标识码),如startActivityForResult(intentY,1);
收件人首先去邮局通过取件码取得包裹,完成相应功能
然后创建新的快递包装盒(这里的intent可以写地址,也可以不写,因为邮局里有记录),然后装入新的包裹,
再通过setResult()(返回马车,里面需要表明已经收到上一个快递)送给收件人,这时收件人通过重写onActivityResult()方法(去被邮寄到的地方取件)去获取包裹
在该方法里有几点判断(收件码)

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (data!=null && resultCode== Activity.RESULT_OK && requestCode==0){
            Bundle bundle = data.getExtras();
            X.setText(bundle.getString("paramX"));

        }
        if (data!=null && resultCode== Activity.RESULT_OK && requestCode==1){
            Bundle bundle = data.getExtras();
            Y.setText(bundle.getString("paramY"));
        }
    }

intent是否为空,resultCode是否为Activity.RESULT_OK(第一次寄过去,他是否收到)
requestCode是否是某个人寄的(标识符),三者都确定后,就能通过取件码取件,然后打开包裹执行想执行的功能。

案例:
xml文档
首页

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp">

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="参数X="
            android:textSize="30sp" />


        <EditText
            android:id="@+id/paramX"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:hint="填入数字" />

    </TableRow>

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="参数Y="
            android:textSize="30sp" />


        <EditText
            android:id="@+id/paramY"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:hint="填入数字" />

    </TableRow>

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="参数X+Y="
            android:textSize="30sp" />


        <EditText
            android:id="@+id/paramx_Y"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:hint="填入数字" />

    </TableRow>


    <Button
        android:id="@+id/submitX"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="获取X值" />
    <Button
        android:id="@+id/submitY"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="获取Y值" />
    <Button
        android:id="@+id/repleyX_Y"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="求x+y值" />
</TableLayout>

第二页

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp">

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="参数X="
            android:textSize="30sp" />


        <EditText
            android:id="@+id/paramB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:hint="填入数字" />

    </TableRow>


    <Button
        android:id="@+id/repleyX"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="返回X值" />
</TableLayout>

第三页

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp">

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="参数Y="
            android:textSize="30sp" />


        <EditText
            android:id="@+id/paramC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:hint="填入数字" />

    </TableRow>

    <Button
        android:id="@+id/repleyY"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="返回Y值" />
</TableLayout>

Java代码
第一页

package com.example.hameworks_01_02;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    private EditText X,Y,Z;
    private Button screachX,screachY,screachX_Y;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        screachX=(Button) findViewById(R.id.submitX);
        screachY=(Button) findViewById(R.id.submitY);
        X=(EditText)findViewById(R.id.paramX);
        Y=(EditText)findViewById(R.id.paramY);
        Z=(EditText)findViewById(R.id.paramx_Y);
        screachX.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intentX = new Intent(MainActivity.this, Main2BActivity.class);
                startActivityForResult(intentX,0);

            }
        });
        screachY.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intentY=new Intent(MainActivity.this,Main2CActivity.class);
                startActivityForResult(intentY,1);
            }
        });
        screachX_Y=(Button) findViewById(R.id.repleyX_Y);
        screachX_Y.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Z.setText(String.valueOf(Integer.parseInt(X.getText().toString())+Integer.parseInt(Y.getText().toString())));
            }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (data!=null && resultCode== Activity.RESULT_OK && requestCode==0){
            Bundle bundle = data.getExtras();
            X.setText(bundle.getString("paramX"));

        }
        if (data!=null && resultCode== Activity.RESULT_OK && requestCode==1){
            Bundle bundle = data.getExtras();
            Y.setText(bundle.getString("paramY"));
        }
    }
}

第二页

package com.example.hameworks_01_02;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Main2BActivity extends AppCompatActivity {
    private EditText X;
    private Button repleyX;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2_b);
        repleyX=(Button) findViewById(R.id.repleyX);

        repleyX.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();//这里可以不加地址,当然加了也不错
                Bundle bundle = new Bundle();
                X=(EditText) findViewById(R.id.paramB);
                bundle.putString("paramX",X.getText().toString());
                intent.putExtras(bundle);
                setResult(Activity.RESULT_OK,intent);
                finish();
            }
        });


    }
}

第三页

package com.example.hameworks_01_02;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Main2CActivity extends AppCompatActivity {
private EditText Y;
private Button repleyY;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2_c);
        repleyY=(Button) findViewById(R.id.repleyY);
        repleyY.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Main2CActivity.this,MainActivity.class);
                Bundle bundle = new Bundle();
                Y=(EditText) findViewById(R.id.paramC);
                bundle.putString("paramY",Y.getText().toString());
                intent.putExtras(bundle);
                setResult(Activity.RESULT_OK,intent);
                finish();
            }
        });
    }
}

清单xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hameworks_01_02">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Hameworks_01_02">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Main2CActivity"
            android:exported="true" />
        <activity
            android:name=".Main2BActivity"
            android:exported="true" />

    </application>

</manifest>
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:24:09  更:2021-09-29 10:25:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:15:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码