Android编程方式开发UI界面和XML文件与Java代码混合控制UI界面
2013-10-14 23:00
483 查看
编程方式开发UI界面
MainActivity.java
strings.xml
XML布局文件和Java代码混合控制UI界面
activity_main.xml
MainActivity.java
MainActivity.java
package com.ezwj.codeconsole; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //创建一个线性布局 LinearLayout layout = new LinearLayout(this); //设置该Activity显示layout super.setContentView(layout); //设置该布局的排列方式 layout.setOrientation(LinearLayout.VERTICAL); //创建一个TextView final TextView show = new TextView(this); //创建一个按钮 Button bn = new Button(this); bn.setText(R.string.ok); //设置按钮的宽高 bn.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); //想Layout容器中添加TextView layout.addView(show); //向Layout容器中添加按钮 layout.addView(bn); //为按钮添加一个事件监听器 bn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { //设置TextView show.setText("Hello,Android," + new java.util.Date()); }}); } @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; } } /** *总结: *1.从上面代码中可以看出所有的UI组件都是new出来的,然后程序使用 *LinearLayout容器来“盛装”这些UI组件,这样就组成了图形用户界面 * *2.还可以看出无论创建哪种UI组件,都需要传入一个this参数, *因为创建UI组件的时候传入一个Context参数,Context代表访问Android应用 *全局信息的API,让UI组件持有一个Context参数,可以让这些UI组件通过该 *Context参数来获取Android应用环境的全剧信息。 * *弊端: *1.不利于高层次的解耦 *2.通过new出UI组件,代码十分臃肿 */
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">CodeConsole</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="ok">如题,这是OK</string> </resources>
XML布局文件和Java代码混合控制UI界面
activity_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:id="@+id/root" android:orientation="vertical" > </LinearLayout>
MainActivity.java
package com.zwj.mixedconsole; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity { //定义一个访问图片的数组 int[] images = new int[]{R.drawable.java,R.drawable.ee,R.drawable.classic,R.drawable.ajax,R.drawable.xml}; int currentImg = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取LinearLayout布局容器 LinearLayout main = (LinearLayout)findViewById(R.id.root); //程序创建ImageView组件 final ImageView image = new ImageView(this); //将ImageView组件添加到LinearLayout布局容器中 main.addView(image); //初始化时显示第一张图片 image.setImageResource(images[0]); image.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //改变ImageView里显示的土坯 image.setImageResource(images[++currentImg % images.length]); } }); } @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; } }
相关文章推荐
- 解決Linux下Android开发真机调试设备不被识别问题
- [Android]在代码里运行另一个程序的方法
- [软件咨询]WPS2012正式版已发布 金山Office移动版4.0发布
- Android笔记-Linux Kernel Ftrace (Function Trace)解析
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- SQL Server中的XML数据进行insert、update、delete
- SQL Server中的XML数据进行insert、update、delete操作实现代码
- 关于SQLServer2005的学习笔记 XML的处理
- android USB如何修改VID具体实现
- Android Mouse实现过程详细笔记
- 深入Android Browser配置管理的详解
- php xml 入门学习资料
- Zend 输出产生XML解析错误
- C# LINQ to XML应用介绍
- Android Mms之:深入理解对话列表管理