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); } });
提示消息:
- Android学习笔记--Gson笔记
- Android学习笔记
- Android学习笔记(二)
- android学习笔记--序
- android学习笔记1
- android学习笔记2
- android学习零碎笔记
- Android 学习笔记
- Android学习笔记(一)
- Android ExpandableListActivity 学习笔记
- Android EditText 学习笔记
- Android学习笔记3
- Android学习笔记4
- Android学习笔记5
- Android学习笔记9
- Android Animation学习笔记
- Android 学习笔记
- Android 数字签名学习笔记
- 【tor browser】Tor 浏览器用户手册
- 母亲的牛奶
- 学习资料网站
- Set Matrix Zeroes
- keepalived简单测下
- Android 学习笔记
- lintcode c++ 两数之和
- Oracle中为表设置自动增长的标识列
- 亚马逊AWS云搭建安全、简单(10分钟)、免费(一年)的VPN服务
- java 中乱码解决总结
- 引入jackson的开发包,编译运行时候 Execution failed for task ':app: Duplicate files copied in APK META-INF/LICENSE
- Smali汇编文档
- java程序打包成exe:一键安装双击运行——Java脱离jre安装程序制作
- net.sf.json的jar包