当前位置:  编程技术>移动开发
本页文章导读:
    ▪ant配备        ant配置 Ant的全名是"Another Neat Tool",是一种基于Java的build工具。目前的最新版本为:Ant 1.8.2。 Ant的概念  当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且.........
    ▪ 华为的一路面试题        华为的一道面试题 代码如下: package com.ex; public class TestB extends TestA { String string = "TestB var"; public static void main(String[] args) { TestB testB = new TestB(); // testB.init(); System.out.println(testB.string).........
    ▪ 运用ViewSwitcher实现ListView的数据动态加载[学习]       使用ViewSwitcher实现ListView的数据动态加载[学习]   ViewSwitcher 译者署名: ivanlee 版本:Android 2.3 r1   结构 继承关系 public class ViewSwitcher extends ViewAnimator   java.lang.Object android.view.View android.view.Vi.........

[1]ant配备
    来源: 互联网  发布时间: 2014-02-18
ant配置
Ant的全名是"Another Neat Tool",是一种基于Java的build工具。目前的最新版本为:Ant 1.8.2。



Ant的概念

  当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。



  注:很多项目的ant脚本中的命名基本上都是一致的,比如:编译一般叫build或者compile;打包一般叫jar或war;生成文档一般命名为 javadoc或javadocs;执行全部任务all。在每个任务的中,ANT会根据配置调用一些外部应用并配以相应参数执行。虽然ANT可调用的外部应用种类非常丰富,但其实最常用的就2,3个:比如javac javadoc jar等。



Ant的优点

  跨平台性。Ant是纯Java语言编写的,所示具有很好的跨平台性。

  操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。

  Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件时XML格式的文件,所以容易维护和书写,而且结构很清晰。

  Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。







开工:

1、下载Ant 1.8.2包   http://ant.apache.org/bindownload.cgi 

2、环境变量中设置(我的jdk目录D:\Programs\Java\jdk1.6.0_21):

     ANT_HOME:  D:\Programs\apache-ant-1.8.2

     PATH:  D:\Programs\apache-ant-1.8.2\bin

3、cmd窗口:ant -version

     如果没有安装成功则回报找不到这个命令,安装成功会有相关的提示信息显示

     Apache Ant(TM) version 1.8.2 compiled on December 20 2010

4、至此ant工具已可用。



可能的错误:

情况一:

      环境变量已配置完毕,命令行敲ant命令后提示:“Unable to locate tools.jar. Expected to find it in D:\Programs\Java\jre6\lib”;

     解决:将D:\Programs\Java\jdk1.6.0_21\lib中的tools.jar复制到D:\Programs\Java\jre6\lib中去。

情况二:

      [javac] D:\Programs\apache-activemq-5.5.0\example\build.xml:151: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

……
解决:
打开build.xml文件
找到<javac srcdir="${build.src}" destdir="${build.dest}">
  改为<javac srcdir="${build.src}" destdir="${build.dest}" includeantruntime="on"/>


    
[2] 华为的一路面试题
    来源: 互联网  发布时间: 2014-02-18
华为的一道面试题
代码如下:
package com.ex;

public class TestB extends TestA {

	String string = "TestB var";

	public static void main(String[] args) {
		TestB testB = new TestB();
		// testB.init();
		System.out.println(testB.string);
	}

	public TestB() {
		super();
		System.out.println("TestB()");
	}

	void init() {
		System.out.println("init()");
		string = "test B init";
	}
}

abstract class TestA {

	String string = "TestA var";

	public TestA() {
		init();
	}

	abstract void init();
}



大家先看下能不能做对?
答案我就不写在这了,自己运行下就知道了.
1 楼 June1991 2011-11-01  
怎么运行不了?
2 楼 茉莉清茶 2011-12-21  
可以运行啊,这个问题容易在输出最后一条字符串的时候出错,这道题考察的是Java中的实例变量的用法,在init()中给string赋值的时候,其实是给this这个对象赋值的,而在main()函数中的testB是一个新的对象,两个不是同一个对象!

    
[3] 运用ViewSwitcher实现ListView的数据动态加载[学习]
    来源: 互联网  发布时间: 2014-02-18
使用ViewSwitcher实现ListView的数据动态加载[学习]

 

ViewSwitcher

译者署名: ivanlee

版本:Android 2.3 r1

 

结构

继承关系

public class ViewSwitcher extends ViewAnimator

 

java.lang.Object

android.view.View

android.view.ViewGroup

android.widget.FrameLayout

android.widget.ViewAnimator

android.widget.ViewSwitcher

 

已知直接子类 ImageSwitcher, TextSwitcher

 

类概述

在两个视图间转换时显示动画,有一个可以创建这些视图的工厂类。你可以用工厂来创建这些视图,也可以自己创建。一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。 (译者注:与ViewFlipper类相似,但该类不常用,常用其两个子类ImageSwitcher:转换图片时增加动画效果; TextSwitcher: 转换文字时增加动画效果; 其实例见apidemos中ImageSwitcher实例和TextSwitcher实例)

 

内部类 interface ViewSwitcher.ViewFactory

在一个ViewSwitcher里创建视图

 

构造函数

public ViewSwitcher (Context context)

构造一个新的空的视图转换器(ViewSwitcher)。

参数

context 应用环境(译者注:应用程序上下文)

 

public ViewSwitcher (Context context, AttributeSet attrs)

构造一个指定上下文、属性集合的空的视图转换器(ViewSwitcher)。

参数

context 应用环境(译者注:应用程序上下文)

attrs 属性集合

 

公共方法

public void addView(View child, int index, ViewGroup.LayoutParams params)

添加一个指定布局参数的子视图

参数

child 添加的子视图

index 添加的子视图的索引

params 子视图的布局参数

异常

IllegalStateException 如果切换器中已经包含了两个视图时。

 

public View getNextView ()

返回下一个要显示的视图

返回

视图切换之后将要显示出的下一个视图

 

public void reset ()

重置视图转换器(ViewSwitcher)来隐藏所有存在的视图,并使转换器达到一次动画都还没有播放的状态。

 

public void setFactory (ViewSwitcher.ViewFactory factory)

设置用来生成将在视图转换器中切换的两个视图的工厂。也可以调用两次 addView(android.view.View, int, android.view.ViewGroup.LayoutParams)来替代使用工厂的方法。

参数

factory 用来生成转换器内容的视图工厂

 

 

实现ListView的数据动态加载DEMO:

效果图:模拟点击LoadMoreItems按钮或得更多数据。

 

代码:

load_more_items.xml:

 

 

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/btn_loadmorecontacts"
    android:text="Load More Items"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:textColor="#FFFFFF" 
    android:background="@android:drawable/list_selector_background" 
    android:clickable="true" 
    android:onClick="onClick" />
 

progress_bar.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:gravity="center_horizontal" 
    android:minHeight="?android:attr/listPreferredItemHeight">

    <ProgressBar 
        android:id="@+id/progressbar"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true" />

    <TextView 
        android:text="Loading…" 
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content"
        android:layout_toRightOf="@+id/progressbar" 
        android:layout_centerVertical="true" 
        android:gravity="center"
        android:padding="10dip"
        android:textColor="#FFFFFF" />
</RelativeLayout>

 

 ViewSwitcherExample.java:

 

 

/**
 * ViewSwitcher 字面意思理解为视图转换开关.
 * 在两个视图间转换时显示动画,有一个可以创建这些视图的工厂类。你可以用工厂来创建这些视图,也可以自己创建。
 * 一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。 
 */
public class ViewSwitcherExample extends ListActivity implements OnClickListener {
	
	static final String[] ITEMS = new String[]{
		"List Item 1", "List Item 2",
		"List Item 3", "List Item 4",
		"List Item 5", "List Item 6",
		"List Item 7", "List Item 8",
		"List Item 9", "List Item 10"};

	private static final String TAG = "ViewSwitcherExample";
	
	private ViewSwitcher switcher;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// no window title
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		//create the ViewSwitcher in the current context
		switcher = new ViewSwitcher(this);
		//footer Button: see XML1
		View footer = View.inflate(this, R.layout.load_more_items, null);
		//progress View: see XML2
		View processBar = View.inflate(this, R.layout.progress_bar, null);
		//add the views (first added will show first)
		 switcher.addView(footer);
		 switcher.addView(processBar);
		//add the ViewSwitcher to the footer
		 getListView().addFooterView(switcher);
		//add items to the ListView
		 setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ITEMS));
		
	}
	
	@Override
	public void onClick(View v) {
		//first view is showing, show the second progress view
		switcher.showNext();  //显示下一个视图
		//and start background work
		new getMoreItems().execute();
		Log.i(TAG, Thread.currentThread().getName());
	}
	
	
	/** Background Task To Get More Items**/
	private class getMoreItems extends AsyncTask{

		@Override
		protected Object doInBackground(Object... params) {
			//code to add more items
			try {
				Thread.sleep(3000); //only to demonstrate
				Log.i(TAG, Thread.currentThread().getName());
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			return null;
		}
		
		@Override
		protected void onPostExecute(Object result) {
			//返回上一个视图
			switcher.showPrevious(); 
			//update the ListView
		}
		
	}
	
}

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3