Android开发实例——Hello World

本文通过一个简单的Android 'Hello World'实例,介绍了XML在界面设计中的作用,解析了main.xml布局文件的结构,包括LinearLayout的垂直方向排列、View的属性设置以及资源引用的方式。通过对AndroidManifest.xml、Main.xml和R.java文件的简要说明,帮助初学者理解Android应用程序的基本组成和资源管理。
摘要由CSDN通过智能技术生成
 编写程序界面有两种方法:

a. XML预编写界面(常用、推荐方法):将一个界面设计写在一个XML文件里,由android程序在运行时读取并绘制界面。该方法将设计和编码分离,易于软件的维护开发。
b. 程序运行时界面:将界面直接编码写在程序里,对于后期如果要修改界面,不得不修改源代码。不推荐此方法。


一个XML文件就是一棵树,节点之间通过父子关系连接。一个子节点只能有一个父节点,一个父节点可以有多个子节点。这个和android的界面设计是一样的,在android里,一个界面控件(如按钮,下拉框,输入框等)叫做一个View,多个View放在一个界面里,这个界面叫做Layout。


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
</LinearLayout>

这里可以看到有两层结构,一个是LinearLayout,其下有一个子节点TextView。解释一下:

  • xmlns:android="http://schemas.android.com/apk/res/android":每个layout都要有的android namespace定义。
  • android:orientation="vertical":朝向,竖直显示还是横向显示。
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent":长宽,这里设置成填充父节点继承下来的全部可用空间。
  • android:text="@string/hello":设置TextView的显示文本为一个名为hello的string。这个string的值可以通过找到strings.xml里找到。这里是一个资源引用

这个例子里,我们先找到strings.xml文件,找到名为hello的string,修改它的值并运行程序,可以发现显示的字符串变成了修改后值。


strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">hello</string>
    <string name="hello">Hello world!</string>
    <string name="add">添加</string>

</resources>



项目文件说明:

AndroidManifest.xml— 这个文件是 Android 应用程序的应用程序部署描述符。
Main.xml — 这个文件包含 Android 活动所用的视觉元素或资源。
R.java — 这个文件是由 Android Developer Tools 自动生成的,它把视觉资源 “连接” 到 Java 源代码。



hello.java:

package com.example.hello;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;


public class hello extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("测试TEST111");
//setContentView(R.layout.activity_main);
setContentView(tv);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值