- 2011/03/28 05:39
- 3 次阅读
-
Java
网上搜到的一片文章,非常不错. 看一眼就能明白如何操作. 直接贴代码:
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
More
- 2011/03/23 12:48
- 13 次阅读
-
Java
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
More
- 2011/03/16 08:33
- 7 次阅读
-
Java
最近项目中用到异步任务功能,网上搜罗了下资料,奈何国内的质量实在太低,依靠伟大的谷歌搜到很多国外的文章,写的非常的好,更好的在于没有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
More
- 2011/03/09 03:00
- 7 次阅读
-
Java
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
More
Recent Comments