热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidHelloWorld程序

学习内容:1.编写第一个HelloWorld程序..学习Android,那么就需要有一个编译器来集成这个环境,然后在搭建好环境的编译器上


学习内容:

1.编写第一个Hello World程序..

  学习Android,那么就需要有一个编译器来集成这个环境,然后在搭建好环境的编译器上进行开发就可以了,我所介绍的都是在Eclipse上来进行Android的开发...环境搭建在这里我就不进行介绍了..在这里就直接来开发...

  先新建一个项目,想必新建项目这东西大家都明白...在建立完Android项目以后,现在一般都是4.X以后的版本了...因此在4.X以后的版本的项目中的layout布局中都会增加一个fragment.xml文件...这个文件被称之为碎片功能,由于自己也是新手,这个东西也是刚刚接触,对这个东西也不是很了解,因此我先直接删除了fragment.xml文件,只是用activity_main.xml文件。。。删除fragment.xml文件后,需要修改MainActivity.java文件,否则会直接出现错误..修改内容如下...//注释掉的部分,代表我们需要修改的部分...直接删除掉也可以,注释掉也行...


package com.example.android_hello;import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.app.Activity;
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// if (savedInstanceState == null) {
// getSupportFragmentManager().beginTransaction()
// .add(R.id.container, new PlaceholderFragment()).commit();
// }
}@Overridepublic 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;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/*** A placeholder fragment containing a simple view.*/
// public static class PlaceholderFragment extends Fragment {
//
// public PlaceholderFragment() {
// }
//
// @Override
// public View onCreateView(LayoutInflater inflater, ViewGroup container,
// Bundle savedInstanceState) {
// View rootView = inflater.inflate(R.layout.fragment_main, container,
// false);
// return rootView;
// }
// }

}


同时我们还需要修改activity.xml文件,把其中的内容全部删除掉。然后以下代码..


放入一个绝对布局和一个文本显示组件...
<RelativeLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android" android:layout_width&#61;"fill_parent"android:layout_height&#61;"fill_parent" ><TextView android:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:text&#61;"&#64;string/hello_world">TextView>
RelativeLayout>


  然后直接进行运行就可以了...其实直接建立出来的Android项目也是可以直接进行运行的&#xff0c;运行的结果也是会在模拟器上显示出Hello World...因为新手的原因&#xff0c;因此就使用了常规的模式...以后再对fragment进行深入的研究...
  我这个在建立了4.X以后的版本后&#xff0c;会多一个appcompat文件&#xff0c;里面包含了一些要调用的类&#xff0c;这是在22.1以后的版本增加的一个新的东西&#xff0c;这个类的提供可以带来更多的便利..这个文件是不允许删除的...删除掉以后程序会报错...

2.Activity的了解...

  Activity是Android程序的四大组件之一...Activity是程序的应用层...程序的每一个显示屏幕就是一个Activity...Activity可以理解成一个JSP文件...Activity是无法直接显示的&#xff0c;它是一个抽象层&#xff0c;一个壳子&#xff0c;显示的内容就是View或ViewGroup&#xff0c;就是用户界面组件..这个下章再说...先有个印象...

  Activity是具有生命周期的...手机最重要也是最基础的功能是打电话&#xff0c;也就意味着电话来的时候可能随时要把现在的程序暂停&#xff0c;如果电量不足的时候也可能随时要把现有程序关闭&#xff1b;因此Android程序和电脑上的程序有所不同&#xff0c;具体到Activity&#xff0c;Activity的生命周期不是自身控制的&#xff0c;而是由Android系统控制的。

Activity的四种基本状态...

i.running运行状态...

这个状态表示正在运行的Activity&#xff0c;显示在屏幕的最前端&#xff0c;可以和用户进行相应的交互...

ii.Paused暂停状态...

Paused状态表示的现在的Activity被一个透明层或者是另一个非全屏的Activity进行了覆盖...虽然可见&#xff0c;但是无法实现用户交互...

iii.Stop停止状态...

当一个Activity被另一个Activity完全覆盖的时候&#xff0c;用户是无法见到的...

iv.Killed杀死状态

表示Activity根本没有进行启动或者是直接被系统终结杀死的状态...

Activity的生命周期图...                                                

Activity栈。。。。



  正在运行的Activity 处在在栈的最顶端&#xff0c;它是运行状态的,当有新Activity进入屏幕最上端时&#xff0c;原来的Activity就会被压入第二层&#xff0c;如果他的屏幕没有被完全遮盖&#xff0c;那么他处于Pause状态&#xff0c;如果他被遮盖那么他处于Stop状态。当然不管你出于任何一层&#xff0c;都可能在系统觉得资源不足时被强行关闭&#xff0c;当然关闭时在栈底的程序最先被关闭。

  譬如&#xff1a;当你在程序中调用 Activity.finish()方法时&#xff0c;结果和用户按下 BACK 键一样&#xff1a;他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈&#xff0c;把原 Activity 压入到栈的第二层&#xff0c;从 Running 状态转到 Paused 状态。

  三&#xff0e;实例&#xff1a;观察翻转屏幕导致的Activity状态变化

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.widget.TextView;
import android.app.Activity;
import android.widget.ImageView;
import android.app.Activity;
/** Called when the activity is first created. */
public class MainActivityLife extends Activity {
&#64;Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Log.i(tag, “onCreate”);}
&#64;Override
public void onStart(){super.onStart();Log.i(tag, “onStart”);}
&#64;Override
public void onPause(){super.onPause();Log.i(tag, “onPause”);}
&#64;Override
public void onResume(){super.onResume();Log.i(tag, “onResume”);}
&#64;Override
public void onStop(){super.onStop();Log.i(tag, “onStop”);}
&#64;Override
public void onDestroy(){super.onDestroy();Log.i(tag, “onDestroy”);}
}

通过运行&#xff0c;我们会在LogCat控制台下看到输出结果...和下面结果类似...



推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
author-avatar
灬段裝丶緈褔_998
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有