当前位置:  编程技术>移动开发
本页文章导读:
    ▪关于移动设备下的一些按键值及其对应的事件        关于移动设备上的一些按键值及其对应的事件 按键及触屏的事件: Java代码 1.package com.yarin.Android.Examples_04_01;   2.  3.import android.app.Activity;   4.import android.os.Bundle;   5.import android.view.KeyEv.........
    ▪ DatePickerDialog的应用        DatePickerDialog的使用 布局:<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "fill_parent" android:layout_height = "wrap_content" > .........
    ▪ [转]Java多线程的Thread种和Runnable接口       [转]Java多线程的Thread类和Runnable接口 Thread 类    Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 Thread 类导出的新类。程序员.........

[1]关于移动设备下的一些按键值及其对应的事件
    来源: 互联网  发布时间: 2014-02-18
关于移动设备上的一些按键值及其对应的事件
按键及触屏的事件:

Java代码
1.package com.yarin.Android.Examples_04_01;  
2. 
3.import android.app.Activity;  
4.import android.os.Bundle;  
5.import android.view.KeyEvent;  
6.import android.view.MotionEvent;  
7.import android.view.View;  
8.import android.widget.Button;  
9.import android.widget.Toast;  
10./** 
11. *  
12. * 控件事件通过设置其控件的监听器来监听并处理事件 
13. * 按键按下事件:通过重写onKeyDown方法 
14. * 按键弹起事件:通过重写onKeyUp方法 
15. * 触笔点击事件:通过实现onTouchEvent方法 
16. * 示例中使用了Toast控件: 
17. * Toast.makeText(this, string, Toast.LENGTH_SHORT).show(); 
18. * 显示提示信息 
19. * 
20. */ 
21. 
22.public class Activity01 extends Activity  
23.{  
24. 
25.    public void onCreate(Bundle savedInstanceState)  
26.    {  
27. 
28.        super.onCreate(savedInstanceState);  
29.          
30.        setContentView(R.layout.main);  
31.        //获得Button对象  
32.        Button button_ok = (Button) findViewById(R.id.ok);  
33.        //设置Button控件监听器  
34.        button_ok.setOnClickListener(new Button.OnClickListener() {  
35.            public void onClick(View v)  
36.            {  
37.                //这里处理事件  
38.                DisplayToast("点击了OK按钮");  
39.            }  
40.        });  
41. 
42.    }  
43. 
44.    /* 按键按下所触发的事件 */ 
45.    public boolean onKeyDown(int keyCode, KeyEvent event)  
46.    {  
47.        switch (keyCode)  
48.        {  
49.            case KeyEvent.KEYCODE_DPAD_CENTER:  
50.                DisplayToast("按下:中键");  
51.                break;  
52.            case KeyEvent.KEYCODE_DPAD_UP:  
53.                DisplayToast("按下:上方向键");  
54.                break;  
55.            case KeyEvent.KEYCODE_DPAD_DOWN:  
56.                DisplayToast("按下:下方向键");  
57.                break;  
58.            case KeyEvent.KEYCODE_DPAD_LEFT:  
59.                DisplayToast("按下:左方向键");  
60.                break;  
61.            case KeyEvent.KEYCODE_DPAD_RIGHT:  
62.                DisplayToast("按下:右方向键");  
63.                break;  
64.        }  
65.        return super.onKeyDown(keyCode, event);  
66.    }  
67.    /* 按键弹起所触发的事件 */ 
68.    public boolean onKeyUp(int keyCode, KeyEvent event)  
69.    {  
70.        switch (keyCode)  
71.        {  
72.            case KeyEvent.KEYCODE_DPAD_CENTER:  
73.                DisplayToast("弹起:中键");  
74.                break;  
75.            case KeyEvent.KEYCODE_DPAD_UP:  
76.                DisplayToast("弹起:上方向键");  
77.                break;  
78.            case KeyEvent.KEYCODE_DPAD_DOWN:  
79.                DisplayToast("弹起:下方向键");  
80.                break;  
81.            case KeyEvent.KEYCODE_DPAD_LEFT:  
82.                DisplayToast("弹起:左方向键");  
83.                break;  
84.            case KeyEvent.KEYCODE_DPAD_RIGHT:  
85.                DisplayToast("弹起:右方向键");  
86.                break;  
87.        }  
88.          
89.        return super.onKeyUp(keyCode, event);  
90.    }  
91.      
92.    public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)  
93.    {  
94.          
95.        return super.onKeyMultiple(keyCode, repeatCount, event);  
96.    }  
97.      
98.    /* 触笔事件 */ 
99.    public boolean onTouchEvent(MotionEvent event)  
100.    {  
101.        int iAction = event.getAction();  
102.        if (iAction == MotionEvent.ACTION_CANCEL ||   
103.            iAction == MotionEvent.ACTION_DOWN ||   
104.            iAction == MotionEvent.ACTION_MOVE)   
105.        {  
106.            return false;  
107.        }  
108.        //得到触笔点击的位置  
109.        int x = (int) event.getX();  
110.        int y = (int) event.getY();  
111.          
112.        DisplayToast("触笔点击坐标:("+Integer.toString(x)+","+Integer.toString(y)+")");  
113.          
114.        return super.onTouchEvent(event);  
115.    }  
116.      
117.    /* 显示Toast  */ 
118.    public void DisplayToast(String str)  
119.    {  
120.        Toast.makeText(this, str, Toast.LENGTH_SHORT).show();  
121.    }  
122.} 




@Override



  public void onBackPressed() {



  // 这里处理逻辑代码,cwj提示大家注意该方法仅适用于2.0或更新版的sdk



  return;



  }

    
[2] DatePickerDialog的应用
    来源: 互联网  发布时间: 2014-02-18
DatePickerDialog的使用



布局:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
    xmlns:android = "http://schemas.android.com/apk/res/android" 
    android:layout_width = "fill_parent" 
    android:layout_height = "wrap_content" > 

	<TextView android:layout_width = "wrap_content" 
		android:layout_height = "wrap_content" 
		android:text = " 查询日期: " 
		android:textSize = "18sp"/> 

	<TextView android:id = "@+id/tvDate" 
		android:layout_width = "wrap_content" 
		android:layout_height = "wrap_content" 
		android:layout_alignParentTop = "true" /> 

	<Button android:id = "@+id/btnDatePicker" 
		android:text = " 编辑 " 
		android:layout_width = "wrap_content" 
		android:layout_height = "wrap_content" /> 

</LinearLayout> 


代码:
public class MainActivity extends Activity{
	  private Button button;
	  Calendar cal;
	  SimpleDateFormat df;
	  TextView tvDate;
	  @Override  
	  public void onCreate(Bundle savedInstanceState) {   
	    super.onCreate(savedInstanceState);   
	    setContentView(R.layout.main);
	    
	    cal = Calendar.getInstance();
	    tvDate = (TextView)findViewById(R.id.tvDate);
	    button = (Button)findViewById(R.id.btnDatePicker);
	  	button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View arg0) {
				  new DatePickerDialog(MainActivity. this , 
						  listener, 
						  cal .get(Calendar. YEAR ), 
						  cal .get(Calendar. MONTH ), 
						  cal .get(Calendar. DAY_OF_MONTH ) 
						  ).show(); 
			}
		});
    }
	
	// 日期选择对话框的 DateSet 事件监听器 

	  private DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener(){  
		  public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { 
		  cal .set(Calendar. YEAR , arg1); 
		  cal .set(Calendar. MONTH , arg2); 
		  cal .set(Calendar. DAY_OF_MONTH , arg3); 
		   updateDate(); 
		  } 
	  }; 
	  // 当 DatePickerDialog 关闭,更新日期显示 
	  private void updateDate(){ 
		  df = new SimpleDateFormat( "yyyy-MM-dd" ); 
		  tvDate.setText( df.format(cal.getTime())); 
	  } 
	  //这样,当DatePickerDialog中的日期被改变后,textview中的日期也做相应改变。 
	  //接下来,在onCreate方法中,绑定button的onClickListener: 
	  // 选择日期按钮 
	  // 构建一个 DatePickerDialog 并显示 
}
1 楼 枫叶灬紫云 2011-08-24  
你好  请问你这DatePickerDialog的样式是怎么定义的?  它的样式能不能自定义啊?  像按钮文字之类的

    
[3] [转]Java多线程的Thread种和Runnable接口
    来源: 互联网  发布时间: 2014-02-18
[转]Java多线程的Thread类和Runnable接口
Thread 类

   Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 Thread 类导出的新类。程序员必须覆盖 Thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数;而是必须调用 Thread 的 start() 函数,该函数再调用 run()。下面的代码说明了它的用法:

   创建两个新线程

import java.util.*;

class TimePrinter extends Thread {
  int pauseTime;
  String name;
  public TimePrinter(int x, String n) {
   pauseTime = x;
   name = n;
  }

  public void run() {
   while(true) {
    try {
     System.out.println(name + ":" + new Date(System.currentTimeMillis()));
     Thread.sleep(pauseTime);
    } catch(Exception e) {
     System.out.println(e);
    }
   }
  }

  static public void main(String args[]) {
   TimePrinter tp1 = new TimePrinter(1000, "Fast Guy");
   tp1.start();
   TimePrinter tp2 = new TimePrinter(3000, "Slow Guy");
   tp2.start();
  }
}

   在本例中,我们可以看到一个简单的程序,它按两个不同的时间间隔(1 秒和 3 秒)在屏幕上显示当前时间。这是通过创建两个新线程来完成的,包括 main() 共三个线程。但是,因为有时要作为线程运行的类可能已经是某个类层次的一部分,所以就不能再按这种机制创建线程。虽然在同一个类中可以实现任意数量的接口,但 Java 编程语言只允许一个类有一个父类。同时,某些程序员避免从 Thread 类导出,因为它强加了类层次。对于这种情况,就要 runnable 接口。Runnable 接口只有一个方法,所以更加安全。不会产生恶意的更改。

   Runnable 接口

   此接口只有一个函数,run(),此函数必须由实现了此接口的类实现。但是,就运行这个类而论,其语义与前一个示例稍有不同。我们可以用 runnable 接口改写前一个示例。(不同的部分用蓝色表示。)

   创建两个新线程而不强加类层次

import java.util.*;

class TimePrinter implements Runnable {
  int pauseTime;
  String name;
  public TimePrinter(int x, String n) {
   pauseTime = x;
   name = n;
  }

  public void run() {
   while(true) {
    try {
     System.out.println(name + ":" + new Date(System.currentTimeMillis()));
     Thread.sleep(pauseTime);
    } catch(Exception e) {
     System.out.println(e);
    }
   }
  }

  static public void main(String args[]) {
   Thread t1 = new Thread(new TimePrinter(1000, "Fast Guy"));
   t1.start();
   Thread t2 = new Thread(new TimePrinter(3000, "Slow Guy"));
   t2.start();
  }
}

   请注意,当使用 runnable 接口时,您不能直接创建所需类的对象并运行它;必须从 Thread 类的一个实例内部运行它。许多程序员更喜欢 runnable 接口,因为从 Thread 类继承会强加类层次。

相关内容目录:
http://www.cnblogs.com/hoojo/archive/2011/05/05/2038141.html

    
最新技术文章:
▪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