2 sinat 34680565 sinat_34680565 于 2016.04.21 13:09 提问

Android开发入门初学遇到的问题 10C

Android开发入门学习,使用的是《第一行代码Android》郭霖著在学习至2.2.5 在活动中使用Toast中产生如下疑问,期待各位前辈帮我解答图片说明图中为输入的代码
问题1、书中原话是可以通过findViewById()方法获取到在布局文件中定义的元素,这里我们传入R.id.button 1,来得到按钮的实例,这里的按钮的实例是什么意思能否麻烦详细解释一下。
问题2、书中说findViewById()返回的是一个View对象,我们需要向下转型将它转成Button对象。其中View对象是什么意思?什么叫向下转型?
问题3、书中说通过调用setClickListener()方法为按钮注册一个监听器,其中监听器是什么意思?有什么功能?

6个回答

qq_21413973
qq_21413973   2016.04.21 13:15

实例就是获得一个初始化的对象,Android是用java语言开发的,java语言是面向对象的,向下转型也是就是面向对象的三大特性之一的多态,监听机制涉及到框架,这个不好说,只能意会,你先学学java基础入门比较好

CSDNXIAOD
CSDNXIAOD   2016.04.21 13:21

android开发中遇到的那些问题
Android开发遇到的问题
Android开发遇到的问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq_32452623
qq_32452623   2016.04.21 13:41

1.得到一个按钮的实例,就是得到Button的实例化对象
2.向下转型,是由父类实例化为子类。这里View是父类,Button是子类。
3.onclickListener是一个监听事件,监听一个控件是否被单击了,如果单击了就触发了这个监听。

可以看出你对java不是很了解,android应用层是用java实现的,建议你可以学习android的同时学习一下java的基础知识,有助于你的学习。

sinat_34680565
sinat_34680565 嗯嗯,是这样的,之前花了很长时间了解java现在看来没有太多效果,请问您能否推荐一些书籍或视频以帮助我了解java。拜托了
大约 2 年之前 回复
q229827701
q229827701   2016.04.21 14:47

1.对象为抽象内容,实例为具体内容。比如你的R.id.button 1对应的那个按钮就是Button的一个实例
2.向下转型,就是多肽的一种方式,比如你是一个人,那么为可以把你转化为一个中国人,这个就是向下,反之为向上,向下不能确保类型的安全。
3.监听器,在现实中就是一种监视设施,比如录音笔。你说了什么话,它就记录下来了。程序中的监听器,就是记录实例发生事件的一个工具,比如按钮被点击,那么点击监听器就会有记录,你就可以把它被点击了,你要处理的事件写在里面。

a714530833
a714530833   2016.04.22 00:49

1.你可以简单的理解button你设置了一个id,而我们可以通过findviewbyid这个方法传入对应的id值来实现button 类和布局文件的绑定,不然这个这个button 就是空的
2.view是findviewbyid 返回的类型,button 是view类的子类,继承了view这个类,所以要进行强制类型转换
3.所谓设置监听就是设置响应事件,比如你点击了按钮,这就产生一个动作,setonclicklistener 就是在这个button上设置了响应,对点击这个动作做出响应,实战点击后进行的动作,如果没设置,你点击按钮就不会有任何事情发生

chy6575
chy6575   2016.04.22 11:07

1.你在布局文件xml中定义了一个button, 通俗理解就是定义了一个button对象,并给button的一些属性进行了赋值(如:宽.高等),
通过findviewById()找到这个对应的button对象,实例化这个button类似于java中的 new MyClass()差不多的意思.

2.findviewById()他的返回值是一个View类型. Button类型是继承TextView , TextView继承View的(View是父类Button是子类).你最终得 到的是一个button.所以你要进行强制类型转换(Button)findviewById();
3.注册监听器,说的通俗点:(举个例子, 你家里有个开关(Button).当你没有连接任何线路时候,进行开和关的动作.不会有任何的响应. 当你给他连上线路和灯泡(注册监听),灯泡的亮灭(监听里面响应的事件)).

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java初学者要注意的问题
学习Java的同学注意了!!!  学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java!   写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家
android开发基础问题与解决办法
初学Android开发时经常遇到的问题即相应解决办法。
Android开发入门书籍强烈推荐
这篇文章献给这些想要从事安卓开发的朋友们!首先欢迎你们进入Android开发的队伍中,这里我收集了非常有用的书籍,方便直接下载资源,就不要在花时间苦苦寻找了。一,Android开发语言基础篇  1.如果没有JAVA基础,或者是从其他平台转来的程序员,首先应该学习的还是JAVA基础,推荐教材:《Head First Java》 这本是一本完整地面向对象(object-oriented,OO)程序设计...
深度学习——白话CNN入门浅见
搞CNN的工程应用有一段时间了,分享下我自己的CNN学习历程。
前端学习中遇到的问题解答集锦
文本编辑器Sublime Text 3Sublime Text 快速、轻量而且易于定制。拥有众多快捷键,多重选取功能和巨大的插件扩展系统,你可以创建完美的工作流。但是,Sublime Text 的更新最近开始变慢,这让一些开发者感到担忧。许多开发者开始转向使用...AtomAtom 由 GitHub 提供,进军文本编辑器市场的时间相对较晚, 其外观和使用与 Sublime Text 类似。二者均支...
android开发中遇到的问题汇总【十】
294. java中 volatile static结合使用 static 静态 volatile 不稳定的 JAVA 里static 和volatile的区别变量放在主存区上,使用该变量的每个线程,都将从主存区拷贝一份到自己的工作区上进行操作。volatile, 声明这个字段易变(可能被多个线程使用),Java内存模型负责各个线程的工作区与主存区的该字段的值保持同步,即一致性。static, 声明
C++初学者容易遇到的几个错误
 最近要用到visual c++来开发一些程序,呵呵 ,以前上学的时候学的是C++,对visual c++不是很了解,基本是从头学起啊, 为了以后,便于总结,写下一些,调试手册,便于总结 第一个错误:故意注释掉//#include "stdafx.h" fatal error C1010: unexpected end of file while looking for precompiled
AE初学遇到的问题以及解决方法的整理
1.未经处理的异常在ESRI.ArcGIS.AxControls.dll中发生。“System.InvalidOperationException”类型的未经处理的异常在 ESRI.ArcGIS.AxControls.dll 中发生 其他信息: ArcGIS version not specified. You must call RuntimeManager.Bind before creati...
UICollectionView___新手遇到的问题:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 测试始终不走这个代理方法的原因肯定是因为UICollectionViewFlowLayout *layout = [[[UICollectionV
【深度学习】入门深度学习真的很困难吗?从这几方面下手轻松破解!
原文来源:fast.ai 作者:Rachel Thomas 编译:嗯~阿童木呀 来源:「雷克世界」授权 产业智能官 转载。 对于想要入门深度学习的新手来说,可能会存在以下几个问题:我需要什么样的电脑来学习深入学习?对初学者来说什么样的深度学习库比较合适?该如何将深度学习投入到生产中?我认为所有这些问题都都涵盖在一个主题之下,即在深度学习中需要的硬件、软件、背景和数据