Android 学习笔记

来源:互联网 发布:佛山房地产数据 编辑:程序博客网 时间:2024/05/17 03:32
一、应用开发基础

APP应用的功能是通过编写一个个Activity子类来实现的。

即:Activity+布局(layout)组成。layout由XML元素组成。XML元素即组件。

Activity:是Android SDK中Activity类的一个具体实例,负责管理用户与信息屏的交互。

布局:定义了一系列用户界面对象以及它们显示在屏幕上的位置。布局保存在XML文件中。每个定义用来创建屏幕上的一个对象,如按钮或文本信息。

命名规范:

Activity Name:名称+Activity

activity文件中的变量命名:变量名前加m前缀。使用Alt+Enter组合键,可以自动导入对应类型的类包。

Layout Name:activity_名称

布局的命名规则是:将Activity名称的单词顺序颠倒过来并全部转换成小写字母,然后在单词间添加下划线。

组件(widget):是用户界面的基本组成模块。组件可以显示文字或图片,与用户交互,甚至布置屏幕上的其它组件。按钮、文本输入控件和选择框等都是组件。

Android SD内置了多种组件,通过配置各种组件可获得所需的用户界面及行为。每一个组件都是View类或其子类(如TextView或Button)的一个具体实例。

组件被声明在XML布局文件中,组件与XML元素一 一对应。元素的名称就是组件的类型。名元素均有一组XML属性。属性可以看作是如何配置组件的指令。

组件属性:

android:layout_width和android:layout_height属性

属性值:

match_parent:视图与其父视图大小相同。

wrap_content:视图将根据其展示的内容自动调整大小。

activity工作原理:

activity子类的实例创建后,会立即执行onCreate(Bundle)方法。同时activity需要获取并管理属于自己的用户界面,即调用setContentView(int layoutresID)方法。

该方法生成指定layout布局的视图并将显示在屏幕上。布局视图生成后,布局文件包含的组件也随之根据自身的属性定义完成实例化。之后即可使用findViewById(R.id.true_button);方法获取组件并操作。

资源和资源ID

布局是一种资源。资源是非代码形式的内容,比如图片、音频以及XML文件等。

项目的所有资源文件存放在app/res的子目录下。

Android为整个布局文件以及各个字符串生成资源ID。layout布局中的组件,只有当在Activity中需要调用的才需要设置资源ID,即属性:android:id="@+id/my_button"

注意:android:id属性值前面有一个+标志,表示是创建ID

layout布局文件中使用资源:

  <Button            android:id="@+id/false_button" //创建ID            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/false_button" //引用字符串资源/>

activity中使用资源:

 setContentView(R.layout.activity_quiz);//引用layout布局文件 mTrueButton=(Button)findViewById(R.id.true_button);//引用字符串资源

组件的实际应用:

 @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.d(TAG,"onCreate(Bundle) called");        setContentView(R.layout.activity_quiz);//设置视图资源        mTrueButton=(Button)findViewById(R.id.true_button);//引用视图资源中组件        mFalseButton=(Button)findViewById(R.id.false_button);        mQuestionTextView=(TextView)findViewById(R.id.question_text_view);        mNextButton=(Button)findViewById(R.id.next_button);        mCheatButton=(Button)findViewById(R.id.cheat_button);//为组件设置监听器        mCheatButton.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v){                boolean answerIsTrue=mQuestionBank[mCurrentIndex].isAnswerTrue();                Intent i=CheatActivity.newIntent(QuizActivity.this,answerIsTrue);                startActivityForResult(i,REQUEST_CODE_CHEAT);            }        });

提示消息:













原创粉丝点击