摘要:
读取SQLite数据库中的字符串字段,使用Cursor的getString方法(其他类型的字段也有相应的读取方法):public abstract String getString (int columnIndex)columnIndex是该字段的编号。如果只知道字段名称,不知道字段编号,可以用getColumnIndex()获取字段编号,然后再读出该字段的值。如以下代码,先根据字段名获取字段编号,再读出数据付给相应变量。r_name = cur_db.getString(cur_db.getColumnIndex(DatabaseHelper.NAME));退出程序时,可以使用Cursor和
阅读全文
posted @ 2013-12-14 21:55
MSTK
阅读(300)
推荐(0)
摘要:
插入新数据到SQLite数据库,首先定义一个ContentValues变量,然后使用put方法:public void put (String key, String value)其中key是字段名,value是该字段的值,对新记录的多个字段赋值以后,使用SQLiteDatabase的insert方法即可将记录插入数据库。public ContentValues cv = new ContentValues();cv.clear();cv.put(DatabaseHelper.DATES, String.valueOf(vdates[k]));cv.put(DatabaseHelper.YEA
阅读全文
posted @ 2013-12-14 15:41
MSTK
阅读(418)
推荐(0)
摘要:
打开SQLite数据库,首先要建立一个DatabaseHelper类的实例,然后,再获得数据库:DatabaseHelper mDBH;SQLiteDatabase db;mDBH = new DatabaseHelper(MainActivity.this);db = mDBH.getWritableDatabase();getWritableDatabase()的解释是Create and/or open a database that will be used for reading and writing,创建(第一次运行时)或打开能够读写的数据库,用这个方法打开数据库,既可以读,也可
阅读全文
posted @ 2013-12-11 12:53
MSTK
阅读(3193)
推荐(0)
摘要:
Android中使用SQLite数据库要通过SQLiteOpenHelper类。首先,定义相关变量: // 数据库变量 DatabaseHelper mDBH; SQLiteDatabase db; public static String strSql;再定义SQLiteOpenHelper类: public static class DatabaseHelper extends SQLiteOpenHelper{ public static final String DATABASE_NAME = "Call_db.db"; public static final in
阅读全文
posted @ 2013-12-10 11:06
MSTK
阅读(471)
推荐(0)
摘要:
1、首先,在values目录下,新建一个styles.xml文件:2、进入styles.xml文件,点击Resources:3、点击Add按钮,在弹出的对话框中选择在顶层创建新元素,在选择Style/Theme,点击OK:4、选中新建的Style/Theme,输入名字my_style:5、选中my_style,点击Add:6、双击Item,在Name中输入android:textSize,Value中输入25sp:7、按照同样方法,新建一个android:textStyle:8、点击保存后,为TextView的Style属性选择my_style:9、得到想要的结果,对其他控件同样适用:
阅读全文
posted @ 2013-12-06 18:35
MSTK
阅读(924)
推荐(0)
摘要:
Android中有很多方法存储数据,如SharedPreferences、SQLite数据库等。简单数据的存储适用SharedPreferences。本文使用SharedPreferences写入和读出address_server、port_server和port_client三个数据。首先,需要先定义sp和editor两个变量: // SharedPreferences变量 public static SharedPreferences sp; public static Editor editor;并且在MainActivity的onCreate(Bundle savedInstanceS
阅读全文
posted @ 2013-12-06 10:16
MSTK
阅读(583)
推荐(0)
摘要:
在Android中,弹出对话框使用AlertDialog.Builder方法。 new AlertDialog.Builder(MainActivity.this).setTitle("本机设置") .setView(view) .setPositiveButton("确定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface v, int arg1...
阅读全文
posted @ 2013-12-05 20:40
MSTK
阅读(1179)
推荐(0)
摘要:
Android退出时,有的Activity可能没有被关闭。为了在Android退出时关闭所有的Activity,设计了以下的类://关闭Activity的类public class CloseActivityClass{ public static List activityList = new ArrayList(); public static void exitClient(Context ctx) { // 关闭所有Activity for (int i = 0; i < activityList.size(); i++) { if (null...
阅读全文
posted @ 2013-12-04 20:58
MSTK
阅读(1782)
推荐(0)
摘要:
不论是PC还是移动设备,都有可能同时存在几个IP地址(如具有多块网卡),本文介绍怎样获得PC或移动设备的所有IP地址。 // 获得所有IP地址 public static void get_ip(){ String address; Enumeration netInterfaces; NetworkInterface ni; Enumeration cardipaddress; InetAddress ip; try { netInterfaces = N...
阅读全文
posted @ 2013-12-03 21:35
MSTK
阅读(1418)
推荐(0)
摘要:
使用UDP数据包发送文件时,由于UDP数据包大小的限制,一个文件要放在几个UDP数据包里面发送,这就需要把一个文件分割成若干部分,分别放进若干个UDP数据包里面,在接收端,收到这些UDP数据包以后,再对文件进行组装,从而得到一个完整的文件。定义的相关变量: // 要分割的文件 public static RandomAccessFile raf_split; // 要合并的文件 public static RandomAccessFile raf_merge; // 文件长度 public static long len; // Byte数组 public static int offset;
阅读全文
posted @ 2013-12-01 12:31
MSTK
阅读(1266)
推荐(0)
摘要:
Java的Socket通信分为TCP和UDP两种,Socket和ServerSocket类用于TCP通信,DatagramSocket用于UDP通信。使用DatagramSocket发送UDP数据包时,首先new一个DatagramPacket,再给DatagramPacket设定目的地的IP地址和端口,然后使用DatagramSocket发送出去。 DatagramSocket sct; DatagramPacket pkt; try{ pkt = new DatagramPacket(b_total,2); pkt.setAddress(Ine...
阅读全文
posted @ 2013-12-01 11:54
MSTK
阅读(1333)
推荐(0)
摘要:
首先是xml布局文件: MainActivity中定义按钮的点击监听器,按下按钮时开始录音,松开按钮时停止录音,类似于微信的操作方法。 // 获得控件 public void get_con(){ btn_talk = (Button)findViewById(R.id.btn_talk); btn_talk.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent e) { if (e.getAction() == MotionE...
阅读全文
posted @ 2013-11-30 18:07
MSTK
阅读(624)
推荐(0)
摘要:
Windows端收到Android端传递来的键盘或鼠标操作信息以后,需要根据这些信息操作鼠标或键盘,这就需要用到java.awt.Robot类,该类用于控制鼠标或键盘。在Java主窗体中定义:public static Robot rbt;在主窗体的构造函数中初始化Robot: // 初始化Robot try{ rbt = new Robot(); } catch(Exception e){ l_status.setText("错误:" + e); }再定义一个静态方法: // Robot public static void rbt_act(Strin...
阅读全文
posted @ 2013-11-30 17:43
MSTK
阅读(716)
推荐(0)
摘要:
为了实现无线鼠标,需要识别出用户在手机屏幕上的滑动动作,这就需要用到GestureDetector类。首先是activity_main.xml: 运行后的效果:中间的空白区即是用户操作鼠标的区域,为了识别用户的动作,定义Mouse_GestureListener类,该类继承自GestureDetector.SimpleOnGestureListener:class Mouse_GestureListener extends GestureDetector.SimpleO...
阅读全文
posted @ 2013-11-30 17:28
MSTK
阅读(575)
推荐(0)
摘要:
为了实现无线键盘的功能,使用了InputMethodManager弹出软键盘。 // 弹出软键盘 public void pop_keyboard(){ imm = (InputMethodManager)ctx.getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); }同时监听了按键事件onKeyDown。 public boolean onKeyDown(int keyCode, KeyE...
阅读全文
posted @ 2013-11-29 22:32
MSTK
阅读(551)
推荐(1)
摘要:
在(1)中,实现了Windows服务端与Android客户端的连接,本节将实现在Windows服务端与Android客户端之间传递数据。Android客户端的发送线程SendThread.java代码:package com.hzhi.mouse_mb;import java.io.DataOutputStream;import java.net.Socket;import android.os.Bundle;import android.os.Message;import android.util.Log;public class SendThread extends Thread { p.
阅读全文
posted @ 2013-11-28 22:51
MSTK
阅读(566)
推荐(0)
摘要:
把手机作为移动鼠标、键盘使用非常方便,本文将实现这一功能。该应用分为两部分:Windows服务端和Android客户端。本文源代码的下载地址:http://download.csdn.net/detail/k_c_u_f/6673245。Windows服务端的工程目录如下:fMain是服务端的主界面,tListen是服务端的监听线程,tReceive是服务端的接收线程。Android客户端的工程目录如下:MainActivity是客户端的主Activity,ConnectThread是客户端的连接线程,SendThread是客户端的发送线程。Java语言的通信有Socket(套接字)和HTTP
阅读全文
posted @ 2013-11-28 20:09
MSTK
阅读(1054)
推荐(0)
摘要:
Android可以使用Monkey向应用发送一连串的随机操作,就好像把手机交给一只猴子让它任意操作一样,以此来检测应用是否健壮,是否容易出错或崩溃。操作的类型包括触屏、移动、按键等。Monkey的语法如下:adb shell monkey -p 也可以首先进入adb shell,再输入monkey -p 。比如,在cmd中输入以下命令:该命令将向com.hzhi.sysinfor应用发送100个随机操作,选项-v表示显示随机操作,--throttle 1000表示事件之间的间隔时间为1秒(1000毫秒)。回车后,部分手机截图如下:可见,确实对该应用发送了很多随机操作。运行命令后的cmd...
阅读全文
posted @ 2013-11-27 23:22
MSTK
阅读(1745)
推荐(1)
摘要:
开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现。步骤:1、在Package Explorer中选中需要统计的包;2、单击菜单Search-->File;3、按照下图设置Search选项:4、点击Search按钮;5、在Search窗口中就会显示该项目的代码总行数,以及各文件的行数:
阅读全文
posted @ 2013-11-26 22:53
MSTK
阅读(1213)
推荐(0)
摘要:
Android中使用ActivityManager可以获得进程信息,并对进程进行管理,如结束进程等。本文使用ActivityManager获得进程列表,并结束选中的进程。首先,看看布局文件。 然后是Java文件。package com.hzhi.sysinfor;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.a...
阅读全文
posted @ 2013-11-24 16:14
MSTK
阅读(1111)
推荐(0)
摘要:
由于手机内存有限,有时需要一次删除很多个包,这时就需要一个实现Android包批量删除的应用。首先是布局文件: 布局文件相对简单,最重要的是列表。然后是类文件:package com.hzhi.sysinfor;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.AlertDialog;import android.app.Li...
阅读全文
posted @ 2013-11-22 22:05
MSTK
阅读(1000)
推荐(0)
摘要:
Android的版本信息可以通过android.os.Build获得,电话信息可以通过TelephonyManager获得,代码如下: private void get_infor(){ sdk = android.os.Build.VERSION.SDK;; release = android.os.Build.VERSION.RELEASE; user = android.os.Build.USER; TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_...
阅读全文
posted @ 2013-11-22 18:11
MSTK
阅读(477)
推荐(0)
摘要:
Android删除包有很多种方法,其中一种通过Intent删除,代码如下: public boolean unload (String n){ boolean res = true; try{ // 通过包名创建URI Uri pu = Uri.parse("package:" + n); // 创建Intent Intent i = new Intent(Intent.ACTION_DELETE, pu); // 执行卸载程序 startActivity(i); res = true; } catch(Exception e){ res =...
阅读全文
posted @ 2013-11-22 17:57
MSTK
阅读(363)
推荐(0)
摘要:
在一个ListActivity中,可能有很多行,如何在某个动作(如点击某个按钮)时判断哪些行的CheckBox被选中了,哪些行的CheckBox没有被选中,这是一个需要解决的问题。首先,需要让BaseAdapter的子类implements OnClickListener,然后在该类的getView()方法中添加以下代码:CheckBox chk_item = (CheckBox) my_item.chk_apk;chk_item.setOnClickListener(this);chk_item.setTag(position);获得CheckBox,再setOnClickListener。
阅读全文
posted @ 2013-11-22 00:12
MSTK
阅读(476)
推荐(0)
摘要:
getView()是BaseAdapter的一个重要方法。为了研究getView()方法,使用了以下的类。// apk列表class list_apk extends BaseAdapter{ private Context ctx; private List list_data; public list_apk(Context context){ ctx = context; list_data = new ArrayList(); } @Override public int getCount() { // TODO Auto-generated method ...
阅读全文
posted @ 2013-11-20 10:53
MSTK
阅读(983)
推荐(0)
摘要:
在ListActivity中显示图标,好像并不复杂,实现起来却不轻松。首先,定义列表中的每一行,这里不是用xml文件定义,而是用一个类定义,CheckBox、ImageView、TextView等控件以addView的方法添加。//apk列表的一行class item_apk extends LinearLayout{ public CheckBox chk_apk; public TextView txt_name; public TextView txt_flag; public ImageView img_apk; public item_apk(Context ctx, S...
阅读全文
posted @ 2013-11-18 22:44
MSTK
阅读(713)
推荐(0)
摘要:
简单的说,ArrayList是顺序存储,而LinkedList是链式存储。
阅读全文
posted @ 2013-11-18 20:57
MSTK
阅读(603)
推荐(0)
摘要:
int是一种数据类型,Integer是一个类,有各种方法,如Integer.parseInt(string)等。
阅读全文
posted @ 2013-11-18 20:54
MSTK
阅读(565)
推荐(0)
摘要:
Android读取手机硬件信息可以使用android.os.Build类。 product = android.os.Build.PRODUCT; manufacturer = android.os.Build.MANUFACTURER; display = android.os.Build.DISPLAY; model = android.os.Build.MODEL; board = android.os.Build.BOARD;
阅读全文
posted @ 2013-11-17 18:04
MSTK
阅读(589)
推荐(0)
摘要:
安装应用时,有时会出现错误Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE,这是存储空间不足的错误,这时就只能将应用安装到SD卡,在AndroidManifest.xml文件的manifest里面添加下面一行:android:installLocation="preferExternal"这样应用就会被安装在SD卡,不会出现存储空间不足的错误了。
阅读全文
posted @ 2013-11-17 12:02
MSTK
阅读(1497)
推荐(1)