android开发-java

android开发-java,第1张

概述环境篇【】初始化环境可以看看这里http://c.biancheng.net/view/2899.html我就只提出我遇到的问题   尝试,没用后发现代理问题打开C:\Users\E\.gradle下面的gradle.properties文件:systemProp.https.proxyPort=80systemProp.http.proxyHost=mirrors.neusoft.edu.cnsy

环境篇【】

初始化环境可以看看这里http://c.biancheng.net/view/2899.html

我就只提出我遇到的问题

 

 

 尝试 ,没用

后发现代理问题

打开C:\Users\E\.gradle下面的gradle.propertIEs文件: systemProp.https.proxyPort=80 systemProp.http.proxyHost=mirrors.neusoft.edu.cn systemProp.https.proxyHost=mirrors.neusoft.edu.cn systemProp.http.proxyPort=80 原来我之前设置过代理。全部注释掉!

 

依赖慢的话就

 

//        mavenCentral()//        jcenter()//        Google()

 

          maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }

 

          maven { url 'https://maven.aliyun.com/repository/Google' }

 

          maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }

 

          maven { url 'https://maven.aliyun.com/repository/jcenter'}

建议多看看官方给出的代码:https://developer.android.google.cn/samples?language=java

看看基础:http://c.biancheng.net/android/

以下是我ode学习总结

 

java先定义再声明,利用findVIEwByID找到按钮的ID值再强制转换类型,过后设置方法onclick

这样就可以通过不同的btn_ID来跳转不同的页面

 

public class MainActivity extends AppCompatActivity {    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        button btn = (button) this.findVIEwByID(R.ID.button1);        btn.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {                //Todo auto-generated method stub                setTitle("button1 被用户点击了");                Log.i("WidgetDemo", "button1 被用户点击了。");            }        });    }}

 

多个时

 

 

这里的OnClick就是一个Listener的名字而已,主要是实现vIEw.onclickListener的onclick方法

intent的参数.class这个就是java的类,在kotlin里也是一样的这样写.class,即activity本就是java的类。 

 

 

 然后就是一些基本常见的组件和GUI的开发步骤

难点是适配器

接上

在activity里,找到想使用的ID并需要转类型,此时的mLv1就是一个ListvIEw了

写出mLv1.点就能看到里面 有哪些方法,其中就有经常用的setAdapter方法,并且可以看到方法参数为adapter,所以可以就可以在另一个class中再写一个adapter

 

 

 

 

在同包的下面另一个class中再写一个adapter,继承baseadapter即可,学会这一个,基本都能用,

BaseAdapter就AndroID应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListVIEw、Spinner、gallery及GrIDVIEw等UI显示组件,

它是继承自接口类Adapter,我们经常使用的ListVIEw 的adapter,即SimpleAdapter,是继承自BaseAdapter的,BaseAdapter是一个基类,没有实现绑定数据的功能,

SimpleAdapter实现了基本控件的绑定,如TextVIEw,button,ImageVIEw).已经为我们实现好了数据优化工作,这些适配器使用相同组件动态绑定数据的方式进行优化。

使用BaseAdapter的话需要重载四个方法,这些方法分别是getCount,getItem,getItemID,最后一个最重要的是getVIEw,getVIEw函数为什么重要呢?

因为它是用来刷新它所在的ListVIEw的。它在什么时候调用的呢?就是在每一次item从屏幕外滑进屏幕内的时候,或者程序刚开始的时候创建第一屏item的时候。

 

 

 

 

还可以点击baseAdapter看看里面的方法,方便我们重写,因为继承嘛

点击他然后ctrl+鼠标左键还是右键点击进去,

 

 

再点 接口implements 里的一些接口进去到看到Adapter类的基本方法

 

 

extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 )

 extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。

这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。  

 implements,实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。  

 

 

点击继承 实现implement接口方法就会@OverrIDe几个方法

然后写一个构造方法传参

 

 

LayoutInflater--(相信接触AndroID久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触AndroID的朋友可能对LayoutInflater不怎么熟悉,

因为加载布局的任务通常都是在Activity中调用setContentVIEw()方法来完成的。其实setContentVIEw()方法的内部也是使用LayoutInflater来加载布局的,

只不过这部分源码是internal的,不太容易查看到。它的作用类似于findVIEwByID()。

不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;

而findVIEwByID()是找xml布局文件下的具体Widget控件(如button、TextVIEw等)。)

如何调用在下面 ,现在只是声明。

 

而context

 

 

那Context到底是什么呢?一个Activity就是一个Context,一个Service也是一个Context。AndroID程序员把“场景”抽象为Context类,他们认为用户和 *** 作系统的每一次交互都是一个场景,

生动形象的理解Context(来自网络)

上面的概念中采用了通俗的理解方式,将Context理解为“上下文”或者“场景”,如果你仍然觉得很抽象,不好理解。在这里给出一个可能不是很恰当的比喻,希望有助于大家的理解:

一个AndroID应用程序,可以理解为一部电影或者一部电视剧,Activity,Service,broadcast Receiver,Content ProvIDer这四大组件就好比是这部戏里的四个主角:胡歌,霍建华,诗诗,Baby。

他们是由剧组(系统)一开始就定好了的,整部戏就是由这四位主演领衔担纲的,所以这四位主角并不是大街上随随便便拉个人(new 一个对象)都能演的。

有了演员当然也得有摄像机拍摄啊,他们必须通过镜头(Context)才能将戏传递给观众,这也就正对应说四大组件(四位主角)必须工作在Context环境下(摄像机镜头)。

那button,TextVIEw,linearLayout这些控件呢,就好比是这部戏里的配角或者说群众演员,他们显然没有这么重用,随便一个路人甲路人乙都能演(可以new一个对象),

但是他们也必须要面对镜头(工作在Context环境下),所以button mbutton=new button(Context)是可以的。虽然不很恰当,但还是很容易理解的,希望有帮助。

 

助。

 

理解完上述之后 重写ovrrID方法,其他可以不写,但写一个方便理解

 

如getcoun方法t写一个 return 10

 

重点重写的getvIEw方法

首先参数里就知道需要一个vIEw convervIEw,

这个convertVIEw其实就是最关键的部分  原理上讲 当ListVIEw滑动的过程中 会有item被滑出屏幕 而不再被使用 
这时候AndroID会回收这个条目的vIEw 这个vIEw也就是这里的convertVIEw

当item1被移除屏幕的时候 我们会重新new一个VIEw给新显示的item_new
而如果使用了这个convertVIEw 我们其实可以复用它 这样就省去了new VIEw的大量开销

所以就用到了layoutInflater的inflate加载这个layout即xml(才能实现这个vIEw即vIEw convervIEw)。然后就可以一个一个找到里面的ID赋给对应的初始值holder,

然后传给convertvIEw。 这个类myadapter就写完了

 

 

当然还可以选择自己赋值,看选可不选,不选的话就是加载xml layout里面的

text这些。

然后回到ListvIEwActivity里的oncreat里使用方法并传参这个自己写的类

 

 

发现提示我们需要context(因为我的类写了一个构造函数传参)。再结合我们上面的context解析可以理解应该这样

 

 再看看RecylerVIEw_java项目(全为各种adapter的演示)

 

 

 

这里面需要注意就是

 

首先是recyclervIEw的配置问题,recyclervIEw是要导入androID.support.v7.Widget.RecyclerVIEw的包。还要在Gradle Scripts中添加 compile ‘com.androID.support:recyclervIEw-v7:23.4.0’,然后同步。
2.使用RecyclerVIEw实现的主要是内容是Item的添加和删除以及ListVIEw,GrIDVIEw和瀑布流的切换,还有就是Item的长按和短按的点击事件。

 

ListVIEw和GrIDVIEw的切换还是很好用,代码也很简单。主要是实现了以下代码。

 

/***这是ListVIEw的效果*/recyclerVIEw.setLayoutManager(new linearlayoutmanager(this));/***这是GrIDVIEw的效果*/recyclerVIEw.setLayoutManager(new GrIDLayoutManager(this, 2));

只需要改一行代码就能实现GrIDVIEw和ListVIEw的切换!!

 

 

 

 

 

 

 

 

总结

以上是内存溢出为你收集整理的android开发-java全部内容,希望文章能够帮你解决android开发-java所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存