Posts Tagged: android

android自定义弹出框(AlertDialog)

网上搜到的一片文章,非常不错. 看一眼就能明白如何操作. 直接贴代码: public class DialogWithInputBox extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final AlertDialog.Builder alert = new AlertDialog.Builder(this); final EditText input = new EditText(this); alert.setView(input); alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { String value = input.getText().toString().trim(); Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show(); } }); alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.cancel(); } }); alert.show(); } } 原文链接:http://www.androidpeople.com/android-dialog-input-text/

......

android  dialog 

android自定义日期组件(拨动效果)

android自带的日期组件是通过TimeDialog,让用户上下调整来输入.但这样势必让用户需要点击某个按钮,弹出对话框后在选择.感觉不是非常的友好. 自己写了一个日期组件,可以通过手势在时间上拨动,达到调整数字的目的. 代码如下: package com.zjhcsoft.mobi.android.widget; import java.util.Calendar; import java.util.GregorianCalendar; import com.zjhcsoft.mobi.android.ui.R; import android.app.DatePickerDialog; import android.app.Dialog; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.widget.DatePicker; import android.widget.TextView; /** * 日期滚动组件 * @author Fred * */ public class RotateTimeInput extends TextView { private static final String TAG = "RotateTimeInput"; public static final String UP = "up"; public static final String DOWN = "down"; private int year; private int month; private int days; private Calendar currentDate;//当前时间

......

android  datapick  java 

在android如何使用AsyncTask异步任务

最近项目中用到异步任务功能,网上搜罗了下资料,奈何国内的质量实在太低,依靠伟大的谷歌搜到很多国外的文章,写的非常的好,更好的在于没有copy paste的成分. 本文内容转自:http://www.brighthub.com/mobile/google-android/articles/82805.aspx 英语好的朋友请直接阅读原文.小弟不才,做个苦力当翻译

介绍

我们的Android应用越来越复杂,连接服务端,和web交互数据,存储大文件在android数据库中的同时显示进度条或者在通知栏显示通知. 我们如何能在抛开UI线程的情况下,边接受处理数据边用进度条展示呢?开始之前,必须知道什么是"UI线程"? 如果你熟悉"Thread"的概念. 那么你应该很容易明白异步任务. Android应用在处理的时候只有一个main主线程在运行.这个看上去像在任何地方只有一个任务. 如果你只有一个UI线程在工作,你就不能做一些复杂的事情,比如同时存储10000条记录,这个时候应用会停住,直到1000条记录存储完毕. 这不是一个好的方式. 在android你可以在一个应用里,同一时间运行多个线程. 举例:一个后台任务可以从服务端接受数据并且存储到本地数据库中. 如何对"Thread"概念有足够的了解,那么我们继续 现在我们可以开始了吗? 开始在后台执行任务? 这里我们还有几步工作要做. 一个古老的路线方法是使用Thread线程类,使用Handlers 和Runnables. 但是我们有更好的方式。使用AsyncTask 类
AsyncTask 类
让我来看看AsyncTask类的结构 private class myBrightHubTask extends AsyncTask protected void onPreExecute(){ } 这个方式是在执行新线程前运行. 这里没有输入和输出的参数,所以这个可以初始化一些你认为必要的参数. protected Z doInBackground(X...x){ } 这是个非常重要的方法. 你可以在这里定义你需要的在后台执行的方法.这里开始是一个独立

......

android  AsyncTask  java 

android单元测试(AndroidTestCase)

Android 单元测试基于JUnit开发.但是用起来并不容易

AndroidManifest.xml

确保你的应用加载了JUnint库,并配置AndroidMainifest.xml按照下面的方式. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app.tests" android:versionCode="1" android:versionName="1.0"> <application> <uses-library android:name="android.test.runner" /> </application> <uses-sdk android:minSdkVersion="3" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.app" android:label="Tests for My App" /> </manifest> AllTests.java 编写测试代码入口.你可以把下面代码拷贝到任意工程去即可. package com.example.app; import junit.framework.Test; import junit.framework.TestSuite; import android.test.suitebuilder.TestSuiteBuilder;

......

android  java