follow lesson,

一. 创建一helloworld,运行。fragment_main.xml里默认是relativeLayout和Textview

二. 创建第一个图形界面,主要是说fragment_main.xml里放各种元素的位置,布局等,比如button,TextView等

文章原文层次是:

Building a Simple User Interface:

1. Create a Linear Layout in fragment_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>

2. Add a Text Field inside the <LinearLayout>

<EditText android:id="@+id/edit_message"         
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />

3. Add String Resources  at res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My First App</string>
<string name="edit_message">Enter a message</string>
<string name="button_send">Send</string>
<string name="action_settings">Settings</string>
<string name="title_activity_main">MainActivity</string> </resources>

4. Add a Button to fragment_main.xml

 <Button         
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />

5. Make the Input Box Fill in the Screen Width,输入框看起来更美观

<EditText
  android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />

图形化的用了LinearLayout,取代RelativeLayout

可编辑的文本框是<EditText>

<EditText android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />

res里设计显示的图片啦,文字啦等,这里在res/value/strings.xml中加入了fragment_mail里定义的button显示的文字,编辑框默认输入文字等.@表示全局的,+表示这个id可以被引用

三、学习Activity

效果是,当user点击前面添加的send按钮时,开启新的一页

1. Respond to the Send Button:add onClick event in fragment_main.xml

<Button     
...
android:onClick="sendMessage" />

说明:sendMesage是在MainActivity.java中自定义的方法,能被onClick的方法必须满足

1)public的

2) 返回为void的

3)view作为唯一的parameter

因此,

2. 创建sendMessage方法。在MainActivity.java中代码如下:

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
// Do something in response to button }

3. 创建 an Intent inside sendMessage()。里面用到了Intent

In Eclipse, press Ctrl + Shift + O to import missing classes

插曲:this()的含义,表示显式调用本类构造方法,需要放第一行;super()是调用父类构造方法;那么如果class B extends A,B(){this(10)}时,this调用的先是父类的构造方法,再是子类的。很方便啊。

extras是指,一个Intent携带了一个数据类型迥异的集合,作为key-values对。putExtra方法第一个参数对应key,第二个对应value.key需要是个常量,为的是让后面的Activity可以通过这个常量查询到这个value。

插曲:

在linux安装时间,很多次用到

  1. ./configure --prefix

这个命令,但不了解命令到底是配置那些选项?

最佳答案:

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)

Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。

其中--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

如果配置--prefix,如:

  1. ./configure --prefix=/usr/local/test

可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。

用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

4. Start the Second Activity by startActivity(intent);

step3和step4的code:

/** Called when the user clicks the Send button */ 
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}

5. Create the Second Activity :DisplayMessageActivity,Add the title string,add it to AndroidMenifest.xm文件中。

所有继承Activity的子类必须实现onCreate()方法。这个方法中必须使用setContentView()方法定义Activity布局,以及组件初始化设置。

所有的Activities必须要在AndroidMenifest文件中声明。使用Eclipse会自动生成的。

Meta-data:元数据,最本质最抽象的数据。

6. 以上步骤之后,apk可以运行,但是无法传递输入的文本。怎么办呢?获取上一个Activity中的信息,需要使用

1》 借助Intent-- 每个Activity都离不了Intent,使用getIntent()方法获取某个你需要的Activity及检索数据。在Oncreate()方法中加上:

Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

2》创建TextView来展示信息 -- 创建TextView并通过setText()来赋值给它;记得要把这个TextView添加到布局xml中,这次我们使用函数setContenView搞一搞:-)在Oncreate()方法中添加。完毕后整体Oncreate()为:

@Override public void onCreate(Bundle savedInstanceState) {     
super.onCreate(savedInstanceState); // Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
// Set the text view as the activity layout
setContentView(textView);
}

学习android文档的更多相关文章

  1. 学习android文档 -- Adding the Action Bar

    1. Setting Up the Action Bar:users-sdk version 11以上可以使用holo主题:如果不使用holo主题,或者sdk版本较低,则需要在manifest文件的& ...

  2. Mongoose学习参考文档——基础篇

    Mongoose学习参考文档 前言:本学习参考文档仅供参考,如有问题,师请雅正 一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model ...

  3. 解决本地访问Android文档是非常慢的问题

    不时在天上不能上网Android开发站点.要查看开发者文档,真是费劲心思,这里不再介绍访问Android开发网站developer.android.com,这里介绍怎样高速的訪问打开本地的SDK下An ...

  4. 《Java开发学习大纲文档》V7.0

    <Java开发学习大纲文档>V7.0简介: 本文档是根据企业开发所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面 ...

  5. 《Java开发学习大纲文档》V8.0

    <Java开发学习大纲文档>V8.0 第八版是以实战作为核心,同时也包含前面所有版本的精华部分,第八版加入的部分有云开发(阿里云OSS存储.(github)gitlab+docker网站自 ...

  6. PHP初中高级学习在线文档下载

    收集了一些框架的学习文档与手册,视频教程,给大家带来了更多的方便,只要收藏与保存于百度云盘就好了,省去了网上到处寻找的时间!大家有需要就收藏保存起来吧! 如果不能下载请到群内获取新的下载地址 QQ群 ...

  7. Android文档资源大放送 感兴趣的话可以网盘下载(个人收集)

    Google.Android.SDK开发范例大全.第3版源码.rar http://pan.baidu.com/s/1c0epYzm 精通Android 3中文版(Pro Android 3).pdf ...

  8. 《Java开发学习大纲文档》V6.0(已经不公布了,请查看第七版)

    <Java开发大纲学习文档第六版>简介: 有需要的私聊作者QQ:253173641.

  9. 4. svg学习笔记-文档结构元素和样式的使用

    svg除了绘图元素之外还有一部分是专门用于文档结构的,这类元素有<g>,<use>,<defs>,<symbol>等 <g>元素 如果我们仅 ...

随机推荐

  1. 使用Ueditor点击上传图片时显示延迟的问题

    最近在做一个项目,需要用到Ueditor,但是在点击上传图片的时候,总是隔了4-5秒才显示文件框 查了一些资料,最后发现,只需在 修改:(1) dialog/images/image.js 把imag ...

  2. uni-app获取元素宽高封装

    getElSize(id) { //得到元素的size return new Promise((res, rej) => { uni.createSelectorQuery().select(' ...

  3. [CSP-S模拟测试]:工业题/a(数学)

    题目传送门(内部题39) 输入格式 第一行:四个正整数$n$.$m$.$a$.$b$.第二行:$n$个正整数,第$i$个表示$f(i,0)$.第三行:$m$个正整数,第$i$个表示$f(0,i)$. ...

  4. eclipse run error:g++ not found in Path

    网上有人说: 在eclipse下 windows-->Preference-->C/C++-->Build-->Setting然后选择Discovery标签,将里面的内容全部R ...

  5. leetcode上的一些分治算法

    53- 思路: 95- 思路

  6. Ubuntu安装可视化电脑配置视图工具neofetch

    安装步骤: sudo apt-get install software-properties-common python-software-propertiessudo add-apt-reposit ...

  7. 网页打开qq

    网页打开qq 打开qq方法tencent://message/?uin=”+“541239271”+“&Menu=yes http://wpa.qq.com/msgrd?V=1&uin ...

  8. 关于I2C和SPI总线协议【转】

    关于I2C和SPI总线协议 IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral ...

  9. 用processing画李萨如曲线

    李萨如曲线 有没有对示波器上变化曲线产生过兴趣,它叫做李萨如曲线: 数学上,利萨茹(Lissajous)曲线(又称利萨茹图形.李萨如图形或鲍迪奇(Bowditch)曲线)是两个沿着互相垂直方向的正弦振 ...

  10. Cocos2d-x在Windows平台环境的搭建

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. windows平台下配置Cocos2d-X引擎所需的压缩文件和可执行文件,如下: 下载链接: adt:    http://tools.a ...