<第一行代码>学习笔记1.09

一、四大组件

Activity,Service,Broadcast Receiver,Content Provider.

二、搭建开发环境

三、自动创建android项目

1.创建项目 

file---new---android application project

application name:Hello World

project name:HelloWorld

package name:com.test.helloworld

2.创建活动

勾选create activity会创建模板activity,不勾选则自己设计。

activity name:HelloWorldActivity

layout name:hello_world_layout

3.运行HelloWorld项目

确认模拟器在线后,点击run as---android application

4.分析代码

(1)activity(由模板创建,模板为blank activity)

第5行是调用布局,第10行是调用菜单。

 1 public class HelloWorldActivity extends Activity {
 2    @Override
 3    protected void onCreate(Bundle savedInstanceState) {
 4        super.onCreate(savedInstanceState);
 5        setContentView(R.layout.hello_world_layout);
 6    }
 7    @Override
 8    public boolean onCreateOptionsMenu(Menu menu) {
 9       // Inflate the menu; this adds items to the action bar if it is present.
10       getMenuInflater().inflate(R.menu.hello_world, menu);
11       return true;
12   }
13 }

(2)layout

打开res/layout目录下的hello_world_layout.xml 。

TestView是android提供的一个控件,用于在布局显示文字。

控件的宽和高都刚好涵盖字--"wrap_content"。控件的text为定义的一个string常量hello_world,但是hello_world的内容尚不知。

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".HelloWorldActivity" >
10     <TextView
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:text="@string/hello_world" />
14 </RelativeLayout>

(3)字符串的定义处

打开res/values目录下的strings.xml。

在这里定义了三个字符串常量,layout中调用的是第三个。

1 <resources>
2     <string name="app_name">Hello World</string>
3     <string name="action_settings">Settings</string>
4     <string name="hello_world">Hello world!</string>
5 </resources>

(4)在Androidmanifest.xml中注册activity

intent-filter中的两行代码表示这是主活动,点击应用图标运行的程序。

1 <activity
2     android:name="com.test.helloworld.HelloWorldActivity"
3     android:label="@string/app_name" >
4     <intent-filter>
5         <action android:name="android.intent.action.MAIN" />
6         <category android:name="android.intent.category.LAUNCHER" />
7     </intent-filter>
8 </activity>

(5)如何引用res文件夹中的资源。

在代码中通过 R.string.hello_world 可以获得该字符串的引用;
在 XML 中通过@string/hello_world 可以获得该字符串的引用。

string可以换成其他的,比如drawable,则引用的是图片资源。

四、手动创建android项目

1.创建项目

file---new---Android project

project name:ActivityTest

src/file---new---package

package name:com.example.activitytest

2.创建活动

package/file---new---class---FirstActivity

勾选create activity会创建模板activity,不勾选则自己设计。

3.添加代码

(1)acitivity

1 public class FirstActivity extends Activity {
2     @Override
3     protected void onCreate(Bundle savedInstanceState) {
4         super.onCreate(savedInstanceState);
5         setContentView(R.layout.first_layout);
6     }
7 }

(2)layout

res/layout---new---android xml file---first_layout.xml

自己添加了一个button。并且为这个button定义了一个id。

xml文件中定义id的格式:@+id/id_name

xml文件中引用id的格式:@id/id_name

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical" >
 5     <Button
 6         android:id="@+id/button_1"
 7         android:layout_width="match_parent"
 8         android:layout_height="wrap_content"
 9         android:text="Button 1"
10     />
11 </LinearLayout>

(3)字符串的定义

res/values---new---android xml file---strings.xml

在这里定义了三个字符串常量,layout中调用的是第三个。

1  <resources>
2      <string name="app_name">Hello World</string>
3      <string name="action_settings">Settings</string>
4      <string name="button_1">Button 1</string>
5  </resources>

(4)注册活动

 1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 2     package="com.example.activitytest"
 3     android:versionCode="1"
 4     android:versionName="1.0" >
 5     <uses-sdk
 6         android:minSdkVersion="14"
 7         android:targetSdkVersion="19" />
 8    <application
 9         android:allowBackup="true"
10         android:icon="@drawable/ic_launcher"
11         android:label="@string/app_name"
12         android:theme="@style/AppTheme" >
13         <activity
14             android:name=".FirstActivity"
15             android:label="This is FirstActivity" >
16             <intent-filter>
17                 <action android:name="android.intent.action.MAIN" />
18                 <category android:name="android.intent.category.LAUNCHER" />
19             </intent-filter>
20         </activity>
21    </application>
22 </manifest>

4.运行HelloWorld项目

确认模拟器在线后,点击run as---android application

五、隐藏标题栏

只需要添加一句话,但是必须加在setContentView之前。

1 protected void onCreate(Bundle savedInstanceState) {
2     super.onCreate(savedInstanceState);
3     requestWindowFeature(Window.FEATURE_NO_TITLE);
4     setContentView(R.layout.first_layout);
5 }

六、使用Toast

toast的弹出必须要有触发点,干脆点击Button 1的时候触发toast。

(1)为button添加监听器,响应click操作。

首先找到为谁添加这个监听器。然后添加响应操作。

 1 protected void onCreate(Bundle savedInstanceState) {
 2     super.onCreate(savedInstanceState);
 3     requestWindowFeature(Window.FEATURE_NO_TITLE);
 4     setContentView(R.layout.first_layout);
 5     Button button1 = (Button) findViewById(R.id.button_1);
 6
 7     button1.setOnClickListener(new OnClickListener() {
 8         @Override
 9         public void onClick(View v) {
10              Toast.makeText(FirstActivity.this, "You clicked Button 1",
11         Toast.LENGTH_SHORT).show();
12         }
13     });
14 }

(2)具体的响应操作

1 @Override
2 public void onClick(View v) {
3     Toast.makeText(FirstActivity.this, "You clicked Button 1",
4     Toast.LENGTH_SHORT).show();
5 }

七、使用菜单

(1)创建菜单

res---new---folder---menu

res/menu---new---android xml file---main.xml

(2)添加菜单项的代码

添加了两个菜单项,并定义了它们的id。item标签就是用来创建菜单项的。

1 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
2     <item
3         android:id="@+id/add_item"
4         android:title="Add"/>
5     <item
6         android:id="@+id/remove_item"
7         android:title="Remove"/>
8 </menu>

(3)字符串定义

(4)在活动中添加菜单,并且定义菜单响应事件

都是在activity中写的。

通过getItemId知道点击的是哪个菜单项,然后做出对应反应。

1 public boolean onCreateOptionsMenu(Menu menu) {
2     getMenuInflater().inflate(R.menu.main, menu);
3     return true;
4 }
 1 public boolean onOptionsItemSelected(MenuItem item) {
 2     switch (item.getItemId()) {
 3     case R.id.add_item:
 4         Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
 5        break;
 6     case R.id.remove_item:
 7         Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
 8         break;
 9     default:
10     }
11     return true;
12 }

八、logCat的使用

(1)添加logCat到eclipse中

window---show view---other---android---logcat---ok

(2)log的等级

Log.v(tag,message)  Log.d()   Log.i()   Log.w()   Log.e()

如果没有打印出来,进入到DDMS视图,点击当前设备。

(3)添加过滤器

如果添加过滤器时将by log tag设为data,那么只会打印tag为data的错误日志。

如果在日志级别控制中选中某等级,那么此等级以下的log就不会被打印。

1.9日学习总结:

开发环境的搭建。遇到了问题但是解决了。

如何创建一个project,activity---layout---menu--button、toast、item---注册

注意id很重要!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!每一个layout的元素都要有自己的id。

错误日志的用法。

时间: 2024-08-24 09:46:10

<第一行代码>学习笔记1.09的相关文章

Android第一行代码学习笔记二---在活动中使用Toast

Toast:是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间. 首先需要定义一个弹出Toast触发点,接着笔记一的程序,正好上面有个按钮,我们就点击这个按钮的时候弹出来一个Toast,在onCreate()方法中添加如下代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat

Android第一行代码学习笔记六---Intent向活动传递数据

@1.向下一个活动传递数据: Intent提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需把这些数据再从Intent中取出就可以了,比如firstActivity中有一个字符串要传递到secondActivity中,修改firstActivity中按钮点击事件,代码可以这样编写: button.setOnClickListener(new View.OnClickListener() { public void onClick(V

Android第一行代码学习笔记七---活动的生命周期

@1.返回栈 Android中的活动是可以层叠的,我们每启动一个新的活动,就会覆盖在原活动之上,然后点击Back键就会销毁最上面的活动,下面一个活动就会重新显示出来. Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back Stack).栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置.而当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈,

Android第一行代码学习笔记三---在活动中使用Menu

在活动中使用Menu: 如果你活动中大量的菜单需要显示,这个·时候·界面·设计就会比较尴尬,Android给我们提供了一种方式,可以让菜单都能得到展示的同时,还能不占用任何空间.· res目录下新建一个menu文件夹,右击res目录->New->Directory,输入文件名menu,点击OK,接着在这个文件夹下.新建一个菜单文件,右击menu文件夹->New->Menu resource file.文件名输入main. 打开文件main.xml,输入如下代码: <?xml

Android第一行代码学习笔记五---隐式Itent启动其它程序的活动

使用隐式Itent,不仅可以启动自己程序的活动,还可以启动其它程序的活动,这使得android多个应用程序之间的功能共享成为了可能,比如你的应用程序中需要展示一个网页,这时你没必要自己去实现一个浏览器,只需要调用系统的浏览器来打开这个网页就行了.修改firstActivity中点击按钮事件的代码,如下: button.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent in

Android第一行代码学习笔记---手动创建活动

1.1 手动创建活动 活动是什么:活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互.一个应用程序中可以包含零个或多个活动. @1.新建一个Android项目,项目名叫作ActivityTest,包名使用默认名com.example.activity.在图一Add an Activity to Mobile这一步我们勾选Add No Activity,因为我们要手动建立Activity. 图一图二 @2.右击com example activi

《Android第一行代码》笔记

学习Android开发差不多有两年时间了,期间也做了大大小小的一些项目.近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客,从中受益不少.于是花了近一周时间看完了郭神的一本Android教材--<Android第一行代码>.这本书相比其他教材个人感觉更为基础,内容很实用.看完之后我也有一些收获,学到了一些可以很好的运用到实际中的Android小技巧,下面从中选出我认为很有价值的地方做个记录.同时欢迎各位指正补充~~ 1.查看当前界面处于哪个Activity. 很多

第一行代码读书笔记1+常见错误分析

1.eclipse里面的视图在 windows ---- show views ---- other ----- Android 2.需要掌握Logcat的使用 Logcat是你在茫茫人海中寻找到一片绿洲的地方,你需要灵活运用之,然后我们可以打印出我们需要的信息,而不用担心找不到. 我们也可以自己添加滤波器,比如下面的滤波器选项: 3.在建立菜单文件的时候,文件头需要改变 以下是错误的,这样的文件<?xml version="1.0" encoding="uft-8&q

第一行代码读书笔记2+常见错误分析

总结下:?一个应用程序中,多个不同的activity之间,以及一个activity多个不同的实例间,又是怎样的通讯机制? 通常有四种: Intent用于组件之间的消息传递,可以跨进程与线程.但是跨进程需要和其他机制捆绑(比如binder). (注意:Binder机制是android中实现的进程间通信的架构) Handle 一般用于主线程(UI线程)界面的更新,通过消息传递机制来实现.(需要使用Looper).此机制一般用于线程通讯. Broadcast 一般和intent一起用,主要用于进程间通