精华内容
下载资源
问答
  • 但是我怎么返回出来呢~ 出了这个回调函数,数据的生命周期就到了. 我知grid有store属性,可以显示里面的数据. 不过我不是grid..我只是用了store加载时的数据,但是加载之后就完了?? [b]问题补充:[/b] =========...
  • 那么怎么才能检测到当前界面是不是主屏或者从其他的界面返回主屏了呢? 这里我说两种方式,不过这个小功能不是我实现的是我同事,呵呵。。。。在此要感谢他们了 先说第一种方式:利用ActivityManager,它...
    前些天的需求,要求当用户的手机屏幕处于home主界面的时候,就在界面上做一些处理!

    那么怎么才能检测到当前界面是不是主屏或者从其他的界面返回主屏了呢?

    这里我说两种方式,不过这个小功能不是我实现的是我同事,呵呵。。。。在此要感谢他们了


    先说第一种方式:利用ActivityManager,它系统级别的的服务,我之所以这么说是因为我

    们是这样得到的。


    ActivityManager activityManager =
    (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);


    然后我们可以看到API有这样一个方法,它是这么定义 和解释的:


    getRunningTasks(int maxNum)
    Return a list of the tasks that are currently running, with the most recent being first and older ones after in order.


    这个方法返回的是一个当前正在运行的任务集合,距离当前最近的第一个任务,任务在这个集

    合中是有序的。距离当前最近的就是第一个任务,他的模式就和java栈一样,pop出来的就是

    当前的!这个list 中包含的是对象是 RunningTaskInfo 从名字上就可以看出来这是一个

    正在运行的任务的信息。它其中包含了这样一个属性baseActivity 他的描述是这样的

    The component launched as the first activity in the task.

    RunningTaskInfo.baseActivity 返回的是一个component。那么这句话的意思也就是

    说 如果我们调用RunningTaskInfo.baseActivity 的这个方法 那么就会得要一个当前正

    在运行的组件名称(它包含了当前组件的 包名 和 类名)。

    ComponentName = RunningTaskInfo.baseActivity 。。这就是他要返回的对象,

    然后看ComponentName 对象 他就包含了两个字段

    private final String mPackage;
    private final String mClass;

    一个就是包名,一个就是类名。那么我们需要就是在包名中检测这一个关键字"launcher",

    你可能会问,为什么要检测这个关键字呢?其实我也思考了这个问题,我个人觉得这是跟系统

    相关的,android系统主屏这个程序并不是我们应用开发工程师来做的,在做系统的时候他就

    已经存在了,就行所有XP系统的 组策略一样,他的名字都是一样的。都叫gpedit.msc 。。

    但是如果xp 系统是开源的你也可以修改组策略的名字叫 。。gped.msc。。。但是通常情况

    下我们不这么干(况且微软这个老东西也不会开源的),那么所有android系统的 主屏这个程

    序都位于launcher这个包中,尽管是开源的,但是大家貌似都不修改这个东西,如果说你硬

    要修改它,那么你检测的时候就检测你修改后的包名吧!

    它完整的程序如下:


    ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningTaskInfo> tasks = activityManager.getRunningTasks(1);
    boolean result = tasks.get(0).baseActivity.getPackageName().contains("launcher");

    如果result 是 true 则就是说当期的那个界面在主屏!

    但是请注意在清单文件中添加如下的权限 不然会抛出异常的


    <uses-permission android:name="android.permission.GET_TASKS"></uses-permission>


    来看第二种方法:

    通过日志输出来操作,因为第一种方法我们必须得知道主屏这个程序 位于那个包中,但是如

    果某个厂商他修改了主屏这个程序的包名(毕竟android开源,说不定那个神经病会这么

    干),我们在检测"launcher" 就可能检测不到。因此这种方法有一定的局限性,所以我们要

    换一种思路,通过日志输出来监控!好吧,来看一下代码!


    java.lang.Process pro = Runtime.getRuntime().exec("logcat -c");
    pro.waitFor();
    pro = Runtime.getRuntime().exec("logcat XXX:D *:S");
    BufferedReader reader = new BufferedReader(new InputStreamReader(pro.getInputStream()));


    我们可以通过进程来调用logcat,然后监控logcat的输出。这是一个大体的思路,下面来细

    细的解释一下。

    先看Runtime.getRuntime().exec("logcat -c"); 。。如果熟悉命令的同学应该很快

    能看懂,它是在调用logcat的清楚log 的命令类似于 window的 clear。。。这个东西!

    然后我们让清除命令的进程等待,然后在调用Runtime.getRuntime().exec("logcat

    XXX:D *:S");初看这一段貌似很难理解,我也是理解了好长时间(因为我也是新

    手)。来详细的分析一下,我们得先对logcat 的命令有一个了解再说,logcat 的命令如下

    -s:默认设置过滤器
    -f:输出日志到文件
    -c:清除日志
    -d:获取日志
    -g:获取日志的大小
    -v:设置日志的格式

    logcat -XXX:D *:S ...还是调用logcat这个东西 那么D 代表的就是说获取所有

    的日志了 但是后面的"*" 号 怎么理解。。因为日志又分为级别(Info Warning Debug Error ) 所以 这个"*" 就是代表所有的日志信息不管什么级别的,但是-XXX 怎么

    理解,其实这个地方就依赖于我们自己的测试机了。。因为我自己的测试机 需要这个东西 所

    以得加上,换了一部机器有可能这个地方也得修改。在向下面看就是看reader.readLine().contains("你要检测的特殊字符")),通过分析日志的输出流来分析了,如果日志输出了。。"("检测到特殊字符了"就证明回到了主屏,但是每一部机器的日志输出可是不一样的哦。。也许你自

    己的机器输出是"(没有检测特殊字符"),这个匹配符就得看你的操作系统的了。。。


    到这里就已经完了,这两种方法有好有坏,第一种的话我们得熟悉操作系统中的主屏这个程序

    的包名,而第二个就是通过JNI 调用了Linux命令。。但是他也有很多限制,比如刚刚提到

    的-XXX 。。。("检测到特殊字符了")), 。。这些都是可变的条件。。所以也有

    局限性,如果哪位看客有更好的方法不如给在下提示一下!在下先行谢过了
    展开全文
  • 我做好了一个欢迎界面,并且做了下按钮触发,里面什么都还没有,我这边有一个游戏主程序,应该怎么才能合理的添加进去呢? 添加的结果就是 点击这个按钮 就进入这个主程序。下面是代码 这个是我的欢迎界面的代码...
  • 如题,请问我怎么才能获得返回结果呢?意思就是我要添加联系人,并在保存的时候知道这个联系人的号码和姓名? 我调用startActivityForResult data直接返回null,resultCode 都不对,返回0,请问我该怎么才能获得...
  • 浏览器和应用怎么发送请求和传递参数,咱们是掌握了,好像平时我们经常访问的网站,应用返回的内容都非常丰富,怎么才能让咱们的应用也能做到呢? 我们需要先看看http全称叫超文本传输协议,也就是说http协议本身...

    浏览器和应用怎么发送请求和传递参数,咱们是掌握了,好像平时我们经常访问的网站,应用返回的内容都非常丰富,怎么才能让咱们的应用也能做到呢?
    在这里插入图片描述
    我们需要先看看http全称叫超文本传输协议,也就是说http协议本身是能够传输大量信息。另外在web应用的世界里面,为什么是使用浏览器作为web应用访问工具呢?而不是传统应用QQ一样,使用之前还需要先安装一个软件呢?(当然QQ也是有web版本的)。这其实就是web应用的优势,叫轻客户端概念。使用一个应用不需要安装软件,打开浏览器就能用,这就是web应用流行的原因。那么浏览器是如何做到类似安装软件一样丰富的界面功能呢?

    因为人们在定义http协议的同时,还创造出了一种web展示的技术,就是我们熟悉的HTML语言。它能够展示出类似软件一样的功能控件,但是界面并不够美观,于是人们又定义了CSS样式规则,来美化HTML,这样咱们就看到了漂亮的web页面了。是不是好像还少了点什么?QQ软件可不止简单的界面,还有复杂的业务逻辑,那么怎么才能实现web的业务逻辑呢?就需要使用脚本语言javascript。这样咱们就能满足web轻客户端要求了。所以浏览器就是来发送用户请求,解析http传回来的丰富内容,通过支持HTML、CSS、javascript这三种技术的方式,当然现在浏览器还能调用硬件资源,咱们就不讨论了。html、css、js这三个技术内容都非常复杂,这里也不讨论,后续讲解前端技术的时候,咱们再研究吧。

    那么我们想让web应用返回丰富信息,就是返回HTML信息。springmvc怎么操作呢?咱们前面已经学会返回信息给浏览器了,那么能不能直接把html返回呢?答案是可以的,我们来新建一个html的方法试试。先准备好一个html内容。

    <html><head></head><body><h1>hello world!</h1></body></html>
    

    在这里插入图片描述
    在这里插入图片描述

    我们可以看到浏览器能够识别我们的html信息,helloworld已经加粗了,因为html的标签h1表示标题格式。这种直接返回html信息的方式,就是最原始的servlet的方式,应用需要通过对html字符串信息进行拼接操作,来让它的内容动起来,也就是所谓的web2.0动态网页时代。这样返回html信息方式,想象一下都能让人奔溃,如果是一个新浪首页那样的页面,基本上人都看不懂了。那怎么办呢?

    最开始人们把html内容保存成文件,用户访问的时候,直接将文件内容返回给浏览器,但是由于html内容是固定的,这就是web1.0静态网页时代。后来人们就在html文件和servlet的特性上,创建了JSP这种页面模板语言。JSP的原理是返回html内容给浏览器之前,可以先运行jsp中的java逻辑,把servlet拼接string的方式变成了可以排版的jsp方式,把html的内容进行处理,让它动态起来。到了springmvc时代,模板语言有很多,springboot默认推荐的thymeleaf和freemarker。这里我们就使用thymeleaf作为模板语言,它的好处是可以不依赖运行环境,直接用浏览器查看html效果,让前端美工和开发人员进行解耦,实现并行工作,从而提升开发效率。
    在这里插入图片描述
    那我们就来看看怎么让springmvc整合thymeleaf,首先让maven引入jar,然后创建html文件放到springboot约定的templates目录下面,最后controller的方法去掉@ResponseBody,返回html文件路径,这样就大功告成了。我们来看看吧。

    <!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head></head><body><h1>hello world!</h1></body></html>
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    这样我们就把thymeleaf整合到springboot中了,并且还学会了如何返回html信息给浏览器。但是咱们还没有将前面案例中用户参数传递到模板文件中,让html内容动态起来。下面我们先用restful风格接收请求参数,然后给模板引擎传入参数,就需要用到springmvc的对象Model,最后在html文件中用thymeleaf的标签语言获取参数信息,具体细节看下面的案例。thymeleaf的语法这里就不展开探讨,后续再补充。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    回顾总结,springmvc要返回丰富信息,需要使用html、css和js的前端技术,另外为了让html内容能够动态生成,引入thymeleaf的模板语言。最后springboot还约定html放在templates目录,css和js放在static目录。
    在这里插入图片描述

    展开全文
  • 那么,如果有人直接输入:...怎么样拒绝他登录,并返回到login界面呢? 两种方法,cookie 和 session 这里我介绍cookie的实现方法。 先看login.html和 一个flask中app.py的写法 login.html 文件如下: &l...

    例子是一个简单的系统,由2个页面组成,分别是login.html和service.html。通常是只有登录login.html,验证用户名密码后,方能展示service.html界面。

    那么,如果有人直接输入:127.0.0.1:5000/service  。怎么样拒绝他登录,并返回到login界面呢?

    两种方法,cookie 和  session   这里我介绍cookie的实现方法。

    先看login.html和 一个flask中app.py的写法

     

    login.html 文件如下:

    <!DOCTYPE html>
    <html>
    <body>
    <div>
      <h1>欢迎登陆运管平台</h1>
      <form action="/login" method="POST">
        <label for="fname">Name</label>
        <input type="text" id="fname" name="user" placeholder="Your name..">
        <label for="lname">Password</label>
        <input type="password" id="lname" name="pwd" placeholder="Your Password..">
        <input type="submit" value="登陆">
      </form>
    </div>
    </body>
    </html>
    很简单,不再解释。只需要注意submit后表单信息是提交给后台的login方法处理即可。
    

    为了展示login.html模板 ,也为了接收表单信息,app.py文件中login方法如下:

    @app.route('/login', methods=["GET", "POST"])
    def login():
        if request.method == "GET":
            return render_template("login.html")
        elif request.method == "POST":
            user = request.form.get("user")
            pwd = request.form.get("pwd")
            if username == 1 & pwd == 1:
                redirect('/service')
            else:
                return render_template("login.html")

    关键点解释:

         两个判断,

        当客户直接访问login时,用GET方法,直接返回login.html模板的内容。

        当客户在登陆界面填写表单并提交,则用POST方法接受user、pwd两个参数的回传,后台判断用户名密码是否正确,正确则调用service方法,不正确则调用login方法。

     

    app.py文件中service方法部分:

    @app.route('/service')
    def service():
        return render_template("service.html")
    

    很简单,就是展示service.html即可。

    但是如果真的这么写,那么客户只需要输入127.0.0.1:5000/service  即可看到网页信息,login就没有意义。

    改!!!:

     

    app.py文件中service方法部分改成如下写法:

     

    from flask import request
    @app.route('/service')
    def service():
        user_token = request.cookies.get("token")
        if user_token:
            render_template("service.html")
        else:
            return redirect('/login')

    关键点解释:

        使用request.cookies.get方法,判断网站能否从网站取到cookie。cookie从哪来的一会再说。

    如果能取到,正常展示servicce.html的内容 ,否则,跳转到login

     

    cookie是哪来的?是login登录成功时生成并发给服务器的,它在/login方法中实现,修改如下:

     

    @app.route('/login', methods=["GET", "POST"])
    def login():
        if request.method == "GET":
            return render_template("login.html")
        elif request.method == "POST":
            user = request.form.get("user")
            pwd = request.form.get("pwd")
            if user == 1 & pwd == 1:
                red= redirect('/service')
                cookie_data = 'hkh78y12$%f'
                red.set_cookie("token", cookie_data)
                return red
            else:
                return render_template("login.html")
    

    关键点解释:

         我们把redirect('/service')   变成一个变量 red  ,然后定义一个cookie_data  值是一串字符串(正确的写法应该是调用方法自动随机生成字符串,参考python中string 和 random。)

         让red变量调用方法set_cookie 然后return red 

         这样,访问/service同时,会将生成的cookie发送给服务端。在访问其他页面时对user_token的判断才能为真。

     

     

    PS :

    10位随机数的生成方法:

    import random
    import string
    data = string.digits + string.ascii_letters
    
    
    cookie = ""
    for i in range(11):
        cookie += random.choice(data)
    return cookie

     

    关键点解释:

    data = ........   是给了我们想生成的随机字符的范围,包含了数字、字母

    cookie += random.choice(data)

    就是不断地把随机生成地字符加到cookie字符串中,直到10个。

     

     

     

     

     

     

     

    展开全文
  • 最近做项目,需要用到微信支付,看了官方的文档,... 于是我就把自己签名生成了一个keystore文件,在打包成了apk文件,在手机上安装apk文件在运行还是返回-1,请问做过的大神们,怎么才能将官方的这个Demo跑起来呢?
  • ③输入文字后点击,返回水印相机拍摄界面,大家可以看到,位置信息已经改变成自己输入的文字或者地理位置了。本回答被网友采纳www.how234.com防采集。水印相机是一款可以添加个性化水印的拍照软件,那么水印相机怎样...

    ①进入水印相机后,点2113击屏幕上5261地理位置信息栏。②点击4102后,在编辑框里输入“自定义1653地点”或者自己喜欢的文字。③输入文字后点击,返回水印相机拍摄界面,大家可以看到,位置信息已经改变成自己输入的文字或者地理位置了。本回答被网友采纳www.how234.com防采集。

    水印相机是一款可以添加个性化水印的拍照软件,那么水印相机怎样才能自动定位呢?

    1、打开手机、(以华为荣耀手机为例),点击下方系统里的相机进入 2、进入到相机界面点击下方的更多选项 3、在更多的选项设置界面里选择水印 4、就可以看见相机自带生成的水印(时间、地点、日期) 5、也可以更改里面的地点,点击文字进入修改你

    接下来就给大家介绍一下,首先打开手机的设置,下滑选择【应用管理】;

    水印相机不可以直接修改日期和时间,你可以修改自己手机设置的日期和时间,这样你想要的时间就会在水印相机拍照时显示出来。具体操作方法如下: 第一步:首先打开你下载的水印相机,点击时间的水印后,发现拍照时间为当前实际时间,如图所示。

    59d193313fcabdff6526b0cf39e54d37.png

    找到【水印相机】,点击【应用权限】,选择【位置信息】选项,点击【允许】;

    设置,隐私,定位服务,进去后找到该项打开定位开关即可。 还有就是请检查网络设置是否打开,或是连接了不能上网的wife。

    c8770e62ac17b6226078c7a5d8bf0c50.png

    回到主屏幕,从屏幕的最上方向下滑动打开状态栏,点击下拉按钮,将定位服务打开;

    定位没有里程限制,都是通过手机等网络传递的。

    59383e872d439e574dc7ffd815c3c75b.png

    然后打开水印相机,在屏幕中可以看到软件自动显示了位置信息,还可以点击下方的【地点】按钮,选择附近的地点;

    设置,隐私,定位服务,进去后找到该项打开定位开关即可。 还有就是请检查网络设置是否打开,或是连接了不能上网的wife。

    600de08770921fc1341e495ade0cc5e7.png

    你学会了吗?

    设置,隐私,定位服务,进去后找到该项打开定位开关即可。 还有就是请检查网络设置是否打开,或是连接了不能上网的wife。

    要将定位服务打开才能显2113示位置。水印相机是一款拍摄5261美化类手机软件,在用户分享4102的照片基础1653上印上地理位置、天气、PM2.5情况、当前时间甚至周围声音分贝数等信息。水印相机有多种模板选择,不仅可以大大节省图片“包装”的时间成本,也增加更多DIY的元素,满足用户在不同碎片化社交场景下,记录自己生活中的点点滴滴,同时模板支持在线更新。扩展资料:主要功能:在QQ空间的最新版本动态页面打开“+”这个按钮,然后点开“照片”就会出现水印相机,可以现拍照片,也可以用相册里面的照片,然后从9种模板里面选择最符合场景或心境的格式。独立版的水印相机模板更为丰富,共五大类三十余款。其中的许多

    展开全文
  • 面包屑实用的地方在于可以让用户更快地访问上级页面,无需借助浏览器的返回按钮或顶级导航栏。  面包屑作为一种辅助和补充的导航方式,能让用户知道在网站或应用中所处的位置并允许用户快速访问要查找的路径,  ...
  • ‍‍这个时候只能返回微信主界面,重新点开公众号列表,找到差评公众号,点开文章,滚动到之前阅读的位置。这就 5 个步骤出去了。。。或者像刷剧看视频的时候,如果收到了条微信消息,也得点开微信才能回。‍其实 ...
  • 很多的微信公众号都是带有商业性质的,当我们关注一个公众号之后若是回复相应的关键词之后公众号后台会自动给我们返回一些文字或是超链接,有的超链接不会显示网址,而是更改了颜色的字体。等待我们点击之后就会自动...
  • 目前程序开了三个线程:接收、处理、发送,三个线程都是一直循环判断指针是否有更新,但这样导致界面切换太卡,请问该怎么处理这三个线程之间的关系才能使界面切换流畅呢,初学C#,如果能给出具体修改代码方法更佳,...
  • 在登录界面,如果我们想让用户输入验证码时才能登录,该怎么做呢? 答: 1.在控制器里 先获取验证码,然后把得到的用户输入的验证码都转换成大写(我这里的验证码都是大写,为了让用户不管输入小写还是大写都能...
  • 上一篇文章我们实现了时间的显示,但是是静态的,不能动态改变,那么怎么才能让静态的时间能以秒的方式来动态改变呢? 由于在上一篇文章中我们获得时间的方法是Calendar()类获得当前时间的方法getTime(),它只是...
  • 这个‘form_id_123’是新出现的一个FormPanel, 在加载这个页面前我是不知道这个对象的引用的, 在加载了这个页面后, 我怎么才能找到这个FormPanel呢。 当前已知的变量只有:"var panel"这个初始panel。
  • 最近在做一个Android应用,客户端需要向服务器端(jsp后台)提交一些信息,并得到服务器的反馈,再显示到界面上。 问题就出现在服务端接受到数据,插入数据库形成订单,处理完后返回成功与否的反馈信息给客户端时候...
  • 作为一个普通消费者,如何才能买到一款自己满意的数码相机呢?相信各位买家已经从各种渠道获得了相当多的信息,正在一步步地走近数码相机,了解数码相机,成为掌握数码相机的高手。别人都已经说过的,老虎今天就不再...
  • 基本上就这些原因了,每个都要细细的查,这样才能发现问题。 可以咨询q-q457189 三、网狐荣耀版手机端在复制文本时提示“复制内容非法”的解决办法 在网狐荣耀版开发调试过程中,复制文本时,提示“复制非法内容”...
  • 第17章 用户界面——屏幕和键盘 17.1 为什么直到程序结束时才看到屏幕输出? 17.2 怎样在屏幕上定位光标? 17.3 向屏幕上写数据的最简单的方法是什么? 17.4 向屏幕上写文本的最快的方法是什么? 17.5 怎样...
  • C语言编程要点

    2017-09-18 00:10:37
    第17章 用户界面——屏幕和键盘 219 17.1. 为什么直到程序结束时才看到屏幕输出? 220 17.2. 怎样在屏幕上定位光标? 220 17.3. 向屏幕上写数据的最简单的方法是什么? 221 17.4. 向屏幕上写文本的最快的方法是什么? ...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

怎么才能返回界面呢