一些知识

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界面: 运行效果图:

核心代码:

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

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

核心代码:

 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);                                                         //启动参数这样的一个跳转
 ​
 ​
            }

开发过程

实现点击按钮界面的跳转

按钮:

跳转

先初始化按钮

 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界面中

Android开发_记事本(1)的更多相关文章

  1. Android开发_如何调用系统默认浏览器访问

    Android开发_如何调用系统默认浏览器访问 2015-10-20 17:53 312人阅读  http://blog.sina.com.cn/s/blog_6efce07e010142w7.htm ...

  2. Android开发_*.R文件无法自动生成

    问题描述:             今天是我决定专注Android开发的第一天,我在网上下载了一个数独游戏的源码,准备开始着手学习.在导入之后出现Java文件中import *.R文件报错,在gen目 ...

  3. Android开发_字符串处理类-TextUtils类

    对于字符串处理Android为我们提供了一个简单实用的TextUtils类,如果处理比较简单的内容不用去思考正则表达式不妨试试这个在android.text.TextUtils的类,主要的功能如下: ...

  4. Android开发_控制硬加速hardwareAccelerated

    控制硬加速 hardwareAccelerated也是一种优化的手段 从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承 ...

  5. Android开发_后台任务task管理_allowTaskReparenting alwaysRetainTaskState clearTaskOn

    1.android:allowTaskReparenting 这个属性用来标记一个Activity实例在当前应用退居后台后,是否能从启动它的那个task移动到有共同affinity的task,“tru ...

  6. Android开发_关于中英文切换

    开发APP过程中可能要有中文模式和英文模式,切换后控件要随着进行更改,以下代码可以很好的实现: public static int getResourcesId(Context context, St ...

  7. Android开发_关于如何屏蔽Home键

    今天在遇到一个要屏蔽Home键的问题,研究一上午终于解决,方法记录于下: 在Android2.3版本以下重写以下方法就能屏蔽Home键: public void onAttachedToWindow( ...

  8. android开发_文本按钮 与 输入框

    1 TextView:    属性与值 android:text="文本" android:textSize="20sp"              //sp为 ...

  9. Android开发_关于点击事件

    为了防止用户或者测试MM疯狂的点击某个button: 创建一个工具类 public class Tools { private static long lastClickTime; public st ...

  10. 安卓开发_浅谈Android动画(四)

    Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1.  ValueAnimator 基本属 ...

随机推荐

  1. systick 理解

    systick 中断的优先级往往设置为最低值,而不是最高值:如果设置为最低值不会发生上图标号[6]处的情况,设置为最低可能会被其他中断抢占,延长systick的响应时间,但是这个延迟不会累计,因为sy ...

  2. Navicat15激活

    1.下载Navicat for MySQL 15 https://www.navicat.com.cn/download/navicat-for-mysql 2.下载激活工具 注意:因某些限制,下载链 ...

  3. .NetCore中配置Ef

    1.在NuGet中下载 Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.SqlServer 2.需要在Api层.实现 ...

  4. cesium 入门指南

    最近拿到了几份offer,经过这次找工作发现自己最近脱节挺严重,为了后续的职业发展,决定开始书写博客记录自己的努力. cesium属于 跨平台.跨浏览器的展现三维地球.地图的JavaScript库. ...

  5. 8css 盒子模型

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. SpringMvc配置和原理

    运行原理 DispatcherServlet通过HandlerMapping在MVC的容器中找到处理请求的Controller,将请求提交给Controller,Controller对象调用业务层接口 ...

  7. JS实现一个函数getType获取所有的数据类型

    1 function getType(obj) { 2 if (obj === null) { 3 return String(obj) 4 } 5 const toType = (obj) => ...

  8. (十五).web字体

    WEB字体 1.1 web 字体基本语法 /* 引入Web字体 给web字体取名字*/ @font-face { font-family: "FZSJ-WSMQSJW"; src: ...

  9. easy-rsa 不同版本克隆

    1.克隆easy-rsa 并切换到2.0版本的分支 yum install -y git git clone https://github.com/OpenVPN/easy-rsa.git cd ea ...

  10. npm proxy问题

    检查你的电脑是否需要配置代理,如果不需要可以将代理禁用: npm config set proxy false 如果是需要配置代理服务的: 开启代理 npm config set proxy true ...