安卓开发之第一个应用.doc_第1页
安卓开发之第一个应用.doc_第2页
安卓开发之第一个应用.doc_第3页
安卓开发之第一个应用.doc_第4页
安卓开发之第一个应用.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安卓开发之MyFirstApp由于在API19中,新增了fragment布局文件,所以在新的API官方文档中,需要修改官方文档的一些细节便于实现一、创建一个安卓项目1.单击工具条的新建按钮2.在弹出的新建对话框中,选择Android(安卓)-Android Application Project(安卓应用程序项目),点击下一步。3.在弹出的New Android Application(新建安卓应用程序)对话框中,在Application Name(程序名)一栏填入:My First App,其他栏会自动生成,需要说明的是,Minimum Required SDK默认的版本是2.2,说明我们开发的安卓应用程序支持的最低版本是2.2,我们也可以调的更低,点击下一步4.这个界面是配置项目,这里保持默认,点击下一步5.这个界面是配置项目属性,保持默认,点击下一步6. 这个界面是选择Activity模板,我们选择Blank Activity(空白模板),点击下一步6.这个界面是设置Activity名和布局名,其中Fragment Layout Name(层次布局名)是API19新增的,谷歌官方文档并未给出说明。我们保持默认,点击finish(完成)。点击完成之后,请耐心等待,需要时间生成文件。二、运行程序由于谷歌官方提供的虚拟机运行实在太慢,这里只给出真机运行的步骤1.安装好手机驱动2.检测连接状态检测连接状态需要运行adb.exe,在最新的SDK中adb.exe从.android-sdk-windowsplatform-tools改到了.android-sdk-windowstools,添加环境变量的时候记得更改。在命令行下输入adb devices回车,结果如图所示,左边是设备名,右边是状态3.点击Run(运行)-Run Configuration(运行配置),弹出运行配置对话框4.双击Android Application(安卓程序)4.Name(名称)填Mydevice点击project(项目)右侧的Browse(浏览)选择我们刚才的项目名MyFirstApp5.切换到target(目标)标签选择launch on all compatible device/AVDs(在所有兼容设备、安卓虚拟设备启动),在下拉选项中选择Active devices(活动设备)6.点击Apply,点击Run运行结果如图:三、建立一个简单的用户界面1.创建一个线性布局MyFirstAppreslayout下有来那个布局文件,分别是activity_main.xml和fragment_main.xml,上面的Hello World!文字是在fragment_main.xml定义的,所以我们对fragment_main.xml的布局进行更改。点击fragment_main.xml,然后在模拟界面中,点击右键,选择change Layout(改变布局)选择LinearLayout(horizontal)线性水平点击确定点击下方的fragment_main.xml标签,可以看到代码 2.添加一个文本框这里我们先删去标签,然后添加以下代码 3.由于android:hint引用的edit_message的字符串,所以我们需要添加字符串资源MyFirstAppresvaluesstrings.xml在strings.xml的标签内添加如下一行Enter a message为了后续的程序使用方便,请同时添加以下两行SendExit4.添加两个按钮,一个用于发送信息到下一个activity, 一个用于退出程序在fragment_main.xml的标签内部添加以下代码 5.运行结果如图其中两个文件全部的源代码如下fragment_main.xml strings.xml My First App Hello world! Settings Enter a message Send Exit7.让输入框填满屏幕宽度在标签中添加下面一行代码,android:layout_weight=1并将android:layout_width设置成0dpandroid:layout_width=0dp8.运行结果如图(一会补图)其中改动后的fragment_main.xml源代码 四、启动另一个Activity主要目的是启动另一个Activity并显示文本框中的消息1.给按钮写响应,我们在上一节中定义了两个按钮,但是这两个按钮并没有定义任何行为我们在Send按钮中添加一行属性android:onClick=sendMessage,在Exit按钮中添加一行属性android:onClick=exitActivityfragment_main.xml部分代码如下LinearLayout xmlns:android=/apk/res/android sendMessage和exitActivity是我们自己定义的方法名,我们需要在MainActivity中实现它。改动之前的代码MyFirstAppsrc包名com.example.myfirstappMainActivity.javapackage com.example.myfirstapp;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.app.ActionBarActivity;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;public class MainActivity extends ActionBarActivity 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 AndroidM 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() Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;我们在MainActivity类内添加以下代码,下面的代码没做任何实现/* Called when the user clicks the Send button */public void sendMessage(View view) / Do something in response to button/* Called when the user clicks the Exit button */public void exitActivity(View view) / Do something in response to button我们用快捷键Ctrl+Shift+O自动导入android.view.View的View包2.构造一个Intent对象Intent对象提供了两个分离组件的运行时绑定,如Activity。这里我们可以理解为它能在两个Activity中传递消息。我们在sendMessage()方法中填入以下代码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);我们在exitActivity()方法中填入以下代码finish();用快捷键Ctrl+Shift+O自动补全包在sendMessage()方法的代码中,我们还有两个问题没有解决DisplayMessageActivity.class这个类我们还没有定义,EXTRA_MESSAGE这个变量我们也没有定义,下面我们解决这两个问题。public class MainActivity extends ActionBarActivity public final static String EXTRA_MESSAGE = com.example.myfirstapp.MESSAGE;在MainActivity最前面定义EXTRA_MESSAGE这个变量3.创建第二个Activity单击新建按钮,这次我们选择Android-Android Activity,点击下一步这里我们选择Blank Activity,点击下一步这里只给出需要改的几个设置,自动更改的不计入其中Activity Name:DisplayMessageActivityTitle: My MessageHierarchical Parent: com.example.myfirstapp.MainActivity点击finish(确定)。3.接收Intent对象在DisplayMessageActivity.java中,我们在DisplayMessageActivity类下加入以下代码,并补全包public class DisplayMessageActivity extends ActionBarActivity Intent intent = getIntent();String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);4.显示消息在onCreate()方法中加入以下代码,并补全包 / 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);同时我们去掉下面的代码if (savedInstanceState = null) getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment().commit();防止其调用PlaceholderFragment()方法,使用fragment_display_message.xml的布局5.运行结果如图附代码MyFirstAppsrcDisplayMessageActivity.javapackage com.example.myfirstapp;import android.content.Intent;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.app.ActionBarActivity;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class DisplayMessageActivity extends ActionBarActivity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_display_message);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);Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.display_message, 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 AndroidM 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() Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) View rootView = inflater.inflate(R.layout.fragment_display_message,container, false);return rootView;MianActivity.javapackage com.example.myfirstapp;import android.content.Intent;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.app.ActionBarActivity;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.EditText;public class MainActivity extends ActionBarActivity public final static String EXTRA_MESSAGE = com.example.myfirstapp.MESSAGE;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 And

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论