首页 > 其他分享 >Android开发_记事本(1)

Android开发_记事本(1)

时间:2023-04-10 19:00:10浏览次数:38  
标签:import 开发 intent 跳转 Intent Android keyCode 记事本 android

一些知识

Textview

TextView中有下述几个属性:

  • id:为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id!

  • layout_width:组件的宽度,一般写:wrap_content或者match_parent(fill_parent),前者是控件显示的内容多大,控件就多大,而后者会填满该控件所在的父容器;当然也可以设置成特定的大小,比如我这里为了显示效果,设置成了200dp。

  • layout_height:组件的高度,内容同上。

  • gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等等。

  • text:设置显示的文本内容,一般我们是把字符串写到string.xml文件中,然后通过@String/xxx取得对应的字符串内容的,这里为了方便我直接就写到""里,不建议这样写!!!

  • textColor:设置字体颜色,同上,通过colors.xml资源来引用,别直接这样写!

  • textStyle:设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)

  • textSize:字体大小,单位一般是用sp!

  • background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片哦!

startActivityForResult

大致可以理解为获取Activity的结果

Intent

intent相当于一个信道,putExtra相当于向里面传送一个名为参数一,内容为参数二的信息,接收方通过参数一相同的名称来接受参数二内容

  • startActivity(Intent)/startActivityForResult(Intent):来启动一个Activity

  • startService(Intent)/bindService(Intent):来启动一个Service

  • sendBroadcast:发送广播到指定BroadcastReceiver

.显式Intent使用示例:

这个用得很多,直接就上例子了:

例子1:点击按钮返回Home界面: 运行效果图:

img

核心代码:

 Intent it = new Intent();
 it.setAction(Intent.ACTION_MAIN);
 it.addCategory(Intent.CATEGORY_HOME);
 startActivity(it);

例子2:点击按钮打开百度页面: 运行效果图:

img

核心代码:

 Intent it = new Intent();
 it.setAction(Intent.ACTION_VIEW);
 it.setData(Uri.parse("http://www.baidu.com"));
 startActivity(it);

在记事本中应用

编辑页面当点击返回按钮的时候跳转到主页面

EditActivity:

 public boolean onKeyDown(int keyCode, KeyEvent event){
         if(keyCode == KeyEvent.KEYCODE_HOME){
             return true;
        }
         else if(keyCode == KeyEvent.KEYCODE_BACK){
             Intent intent = new Intent();//只用来传输信息,不用来跳转
             intent.putExtra("input",et.getText().toString());
             setResult(RESULT_OK,intent);
             finish();
             return true;
        }
         return super.onKeyDown(keyCode,event);
    }

MainActivity中:

 public void onClick(View view) {
                 //测试btn
                 //Log.d(TAG,"onClick:click");
                 Intent intent = new Intent(MainActivity.this,EditActivity.class);//从参数一跳转到参数二
                 //启动活动并获取结果
                 startActivityForResult(intent,0);                                                         //启动参数这样的一个跳转
 ​
 ​
            }

开发过程

实现点击按钮界面的跳转

按钮:

img

跳转

先初始化按钮

 super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         //floatingbutton初始化
         btn = ( FloatingActionButton)findViewById(R.id.fab);
         tv = findViewById(R.id.tv);
 ​

之后用一个setOnClickListener函数实现跳转

 btn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 //测试btn
                 //Log.d(TAG,"onClick:click");
                 Intent intent = new Intent(MainActivity.this,EditActivity.class);//从参数一跳转到参数二
                 //启动活动并获取结果
                 startActivityForResult(intent,0);                                                         //启动参数这样的一个跳转
            }
        });

接受Edit输入的结果

MainActivity中:

 //下面接受startActivityForResult结果
     @Override
     //通过上面的Intent跳转到Edit,并通过下面的函数来对Edit的内容进行接收
     protected void onActivityResult(int requestCode,int resultCode,Intent data){
         super.onActivityResult(requestCode,resultCode,data);
         String edit = data.getStringExtra("input");
         //Log.d(TAG,edit);
         tv.setText(edit);       //输出输入的内容到Main屏幕中
    }

EditActivity中:

  //可以背一下下面格式
     //功能:传回一个“input”的值来对应前面的getStringExtra
     public boolean onKeyDown(int keyCode, KeyEvent event){
         if(keyCode == KeyEvent.KEYCODE_HOME){
             return true;
        }
         else if(keyCode == KeyEvent.KEYCODE_BACK){
             Intent intent = new Intent();//只用来传输信息,不用来跳转
             intent.putExtra("input",et.getText().toString());
             setResult(RESULT_OK,intent);
             finish();
             return true;
        }
         return super.onKeyDown(keyCode,event);
    }

此时的完整代码:

MainActivity:

package com.example.note;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

public class MainActivity extends AppCompatActivity {

final String TAG = "tag";
FloatingActionButton btn; //后面再初始化
TextView tv;
//笔记本的核心:ListView
ListView lv;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//floatingbutton初始化
btn = ( FloatingActionButton)findViewById(R.id.fab);
tv = findViewById(R.id.tv);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//测试btn
//Log.d(TAG,"onClick:click");
Intent intent = new Intent(MainActivity.this,EditActivity.class);//从参数一跳转到参数二
//启动活动并获取结果
startActivityForResult(intent,0); //启动参数这样的一个跳转


}
});

}

//下面接受startActivityForResult结果
@Override
//通过上面的Intent跳转到Edit,并通过下面的函数来对Edit的内容进行接收
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
String edit = data.getStringExtra("input");
//Log.d(TAG,edit);
tv.setText(edit); //输出输入的内容到屏幕中
}

}

EditActivity:

package com.example.note;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;
import android.content.Intent;
import java.security.Key;

public class EditActivity extends AppCompatActivity{

//实例化一个et
EditText et;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_layout);
//定位输入好的内容
et=findViewById(R.id.et);
}
//可以背一下下面格式
//功能:传回一个“input”的值来对应前面的getStringExtra
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_HOME){
return true;
}
else if(keyCode == KeyEvent.KEYCODE_BACK){
Intent intent = new Intent();//只用来传输信息,不用来跳转
intent.putExtra("input",et.getText().toString());
setResult(RESULT_OK,intent);
finish();
return true;
}
return super.onKeyDown(keyCode,event);
}

}

效果

点击按钮会跳转到edit界面,输入内容后按返回键会将内容显示在MainActivity界面中

img

 

 

 

 

标签:import,开发,intent,跳转,Intent,Android,keyCode,记事本,android
From: https://www.cnblogs.com/zsc02/p/17303967.html

相关文章

  • odoo 后台开发(问题)
    1.Views视图button按钮属性type:主要使用action和objectobject:指定name="模型函数"action:指定name="%(record的id)d"context:传入上下文参数,如设置context="{'active_id':id}"则可以在模型文件使用环境上下文获取传入的值active_id=self.env.cont......
  • 2023很火的手机记事本APP
    在经济高速发展的今天,对于职场人士来说,时间是非常宝贵的,所以我们在工作中要时刻保持高效,能够准确的处理各种事项和工作任务。那么当工作中有很多信息需要记录、管理的时候,当有各种各样工作任务需要完成的时候,职场人士应该如何快速记录下来这些内容呢?  在2023年越来越多......
  • 可视化开发工具打破信息孤岛,提质又增效!
    相信在很长的一段时间内,信息孤岛、部门之间缺乏协作、数据难以整理等问题,都是很多企业在办公过程中遇到的常见问题。随着信息技术的发展,办公高效自动化已经成为无纸化办公的发展趋势了,应用可视化开发工具可以摒除这些缺陷,助力企业办公提质又增效。1、关于可视化开发工具什么是可......
  • vite 开发按需引入的组件库 rollup
    转载:https://blog.csdn.net/qq_27314517/article/details/128675552package.json{"name":"...","private":false,"version":"0.1.9","main":"./lib/index.umd.js","module&......
  • 一站式开发平台 加速企业数字化发展
    协同办公平台、经营管理平台、生产控制平台、数字决策支持体系……当前,新一轮科技革命方兴未艾,以数字技术为基座的数字化,正颠覆、重构着千行百业。数字化转型是信息技术引发的系统性变革,涉及单一应用、集成化、平台化、数据化、数智化等过程,需要循序渐进、持之以恒。但实际上,大部分......
  • 7年测试,从功能测试到测试开发,我总算证明了自己
    ​ 我感觉我是一个比较有发言权的人吧,我在测试行业爬模滚打7年,从点点点的功能测试到现在成为测试开发工程师,工资也翻了几个人觉得,测试的前景并不差,只要自己肯努力;我刚出来的时候是在鹅厂做外包的功能测试,天天点点点,很悠闲,点了两年,发觉这样下去会废,然后就开始学习python,java,学着......
  • 成都开发者Meetup|聚焦云原生开源,点亮企业创新活力
    作者:阿里云云原生共话云原生架构升级,构筑开源开放的社区氛围,帮助企业借助云原生开源技术实现增效降本。2023年 04月15日,8大微服务&容器开源实践亮点集结成都。本次微服务x容器开源开发者Meetup将围绕云原生领域当下热门开源项目的技术分享和企业实践展开,活动邀请到Du......
  • android-RecyclerView实现拖动排序
    android:RecyclerView实现拖动排序最近项目中需要实现对某一类条目进行拖动排序功能,实现技术方案就是利用ItemTouchHelper绑定RecyclerView、ItemTouchHelper.Callback来实现UI更新,并且实现动态控制是否开启拖动功能。其中,ItemTouchHelper是Google在support-v7包中添加的,其于Rec......
  • 基于SqlSugar的开发框架循序渐进介绍(26)-- 实现本地上传、FTP上传、阿里云OSS上传三者
    在前面介绍的随笔《基于SqlSugar的开发框架循序渐进介绍(7)--在文件上传模块中采用选项模式【Options】处理常规上传和FTP文件上传》中介绍过在文件上传处理的过程中,整合了本地文件上传和基于FTP方式的上传文件的处理整合。本篇随笔继续介绍文件上传的处理,基于选项模式【Options】......
  • 【Windows开发】使用Windows官方版FUSE开发文件系统
    本文仅分析技术信息,不提供代码!1.用户态实现文件系统1.Linux上要自主实现文件系统一般会采用fuse,主要是能在用户态进程直接开发实现,不需要开发内核驱动模块,这部分官方示例代码和开源代码太多了,也没什么好讲的,另外MAC上也有fuse开源项目。2.Windows也有开源项目dokany,再加上其......