`

Android事件汇总

阅读更多

 

1  RadioGroup控件的OnCheckedChangeListener 事件 

 

  /* RadioGroup用OnCheckedChangeListener来运行 */
   mRadioGroup1.setOnCheckedChangeListener(mChangeRadio);

  private RadioGroup.OnCheckedChangeListener mChangeRadio = new RadioGroup.OnCheckedChangeListener() {
		@Override
		public void onCheckedChanged(RadioGroup group, int checkedId) {
	 
			if (checkedId == mRadio1.getId()) {
				/* 把mRadio1的内容传到mTextView1 */
				mTextView1.setText(mRadio1.getText());
				myTextViewKeyListener.setTag("show soft key ");
			} else if (checkedId == mRadio2.getId()) {
				/* 把mRadio2的内容传到mTextView1 */
				mTextView1.setText(mRadio2.getText());
				myTextViewKeyListener.setTag(null);
			}
		}
	};

 2  EditText.OnKeyListener 监听机制 

 

   

 myTextViewKeyListener.setOnKeyListener( new EditText.OnKeyListener(){
	@Override
	public boolean onKey(View v, int keyCode, KeyEvent event) {

		mTextView1.setText(myTextViewKeyListener.getText().toString()  );
		return false;
	}
});

 

3  复选框的CompoundButton.OnCheckedChangeListener监听事件 

  

checkboxBaskball = (CheckBox) findViewById(R.id.basketball);
checkboxFootball.setOnCheckedChangeListener( new MyCheckBoxListener());

private class MyCheckBoxListener implements   OnCheckedChangeListener{

@Override
public void onCheckedChanged(CompoundButton buttonView,
		boolean isChecked) {
	 if(isChecked){
		 Toast.makeText(RadioGroupActivity.this, "您选择了:"+buttonView.getText(),Toast.LENGTH_SHORT).show() ; 
	 }else{
		 Toast.makeText(RadioGroupActivity.this, "您取消选择了:"+buttonView.getText(),Toast.LENGTH_SHORT).show() ; 
	 }
	
}
}

 

 

4  按钮的单击事件 

myButton1.setOnClickListener(new Button.OnClickListener(){  
	@Override  
	public void onClick(View v) {  
	}             
});  

 4 Spinner 的 AdapterView.OnItemSelectedListener事件 

  

	
	 private Spinner spinner;    
	 private ArrayAdapter<String> adapter;  
	 private static final String[] m={"足球","篮球","排球","乒乓球","冰球"};   


    public void useSpinner(){
	   spinner = (Spinner) findViewById(R.id.Spinner01);  
	   //将可选内容与ArrayAdapter连接起来  
       adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m);  
       //设置下拉列表的风格  
       adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);  
       spinner.setAdapter(adapter); 
       spinner.setPrompt("请选择人名");  
       //设置默认选择项  
       spinner.setVisibility(View.VISIBLE); 
       //设置监听器  
       spinner.setOnItemSelectedListener(new SpinnerSelectedListener());
       
	}


    //spinner 选择监听器   
    class SpinnerSelectedListener  implements  AdapterView.OnItemSelectedListener{  
  
        @Override  
        public void onItemSelected(AdapterView<?> arg0, View arg1, int index,  
                long arg3) {  
        	Toast.makeText(RadioGroupActivity.this, "您选择了:"+arg0.getItemAtPosition(index).toString(),Toast.LENGTH_SHORT).show() ;
        }  
  
        @Override  
        public void onNothingSelected(AdapterView<?> arg0) {  
        }  
          
    } 

 

 5 时间和日期的DatePickerDialog.OnDateSetListener 和TimePickerDialog.OnTimeSetListener 监听器

  

        final Calendar c = Calendar.getInstance();
        mYear = c.get(Calendar.YEAR);  
        mMonth = c.get(Calendar.MONTH);  
        mDay = c.get(Calendar.DAY_OF_MONTH);
        
        mHour = c.get(Calendar.HOUR_OF_DAY);
        mMinute = c.get(Calendar.MINUTE);


            MyDatePickerDialog myDatePickerDialog = new MyDatePickerDialog();
            DatePickerDialog datePickerDialog = new DatePickerDialog(this, 
                    myDatePickerDialog,mYear, mMonth, mDay);
            datePickerDialog.show(); 


            MyTimePickerDialog myTimePickerDialog = new MyTimePickerDialog();
            TimePickerDialog timePickerDialog = new TimePickerDialog(this, 
                    myTimePickerDialog, mHour, mMinute, true);
            timePickerDialog.show();            //显示时间设置对话框

    /*
     * Function  :       自定义MyDatePickerDialog类,用于实现DatePickerDialog.OnDateSetListener接口,
     *       当点击日期设置对话框中的“设置”按钮时触发该接口方法
     */
    public class MyDatePickerDialog implements DatePickerDialog.OnDateSetListener {
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            mYear = year;  
            mMonth = monthOfYear;  
            mDay = dayOfMonth;  
            
            updateDateDisplay(); 
        }
    }
     
    /*
     * Function  :  自定义MyTimePickerDialog类,用于实现TimePickerDialog.OnTimeSetListener接口,
     *                           当点击时间设置对话框中的“设置”按钮时触发该接口方法
     */
    public class MyTimePickerDialog implements TimePickerDialog.OnTimeSetListener {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
			mHour = hourOfDay;
			mMinute = minute;
			updateTimeDisplay();
        }     
    }

 

 6 进度条使用 

    1) 设置进度条模式,setIndeterminate 是否为模糊模式,true:不显示进度条进度   false:显示进度条进度。

    2 )设置最大进度值   setMax 

    3)设置现在进度值 setProgress

    

	<ProgressBar 
		android:id="@+id/message_detail_head_progress" 
		android:layout_gravity="left|center"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		style="@android:style/Widget.ProgressBar.Horizontal"
		/>

	<ProgressBar 
		android:id="@+id/message_detail_head_progress2" 
		android:layout_gravity="left|center"
				android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		style="@android:style/Widget.ProgressBar.Small"
		/>
	

 

    Activity

public class ProgressBarActivity extends Activity {

	protected static final int GUI_STOP_NOTIFIER = 0x108;  
	protected static final int GUI_THREADING_NOTIFIER = 0x109;  
	    
	private ProgressBar myProgress1;
	private ProgressBar myProgress2;
	private Button myButton;

	private int intCounter;  
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_PROGRESS);
		setContentView(R.layout.process_bar);
		// 设置窗口模式,因为需要显示进度条在标题栏
		
		setProgressBarVisibility(true);
//		setContentView(R.layout.process_bar);

		// 取得ProgressBar
		myProgress1 = (ProgressBar) findViewById(R.id.message_detail_head_progress);
		myProgress2 = (ProgressBar) findViewById(R.id.message_detail_head_progress2);
		myButton = (Button) findViewById(R.id.Button06);

		myProgress1.setIndeterminate(false);
		myProgress2.setIndeterminate(false);
		myButton.setOnClickListener(new Button.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				myProgress1.setVisibility(View.VISIBLE);
				myProgress2.setVisibility(View.VISIBLE);

				myProgress1.setMax(100);
				myProgress1.setProgress(0);
				myProgress2.setProgress(0);

				// 通过线程来改变Progress的值

				new Thread(new Runnable() {

					@Override
					public void run() {
						for (int i = 0; i < 10; i++) {
							try {
								intCounter = (i + 1) * 20;
								Thread.sleep(1000);
								if (i == 4) {
									Message m = new Message();
									m.what = ProgressBarActivity.GUI_STOP_NOTIFIER;
									ProgressBarActivity.this.myMessageHandler
											.sendMessage(m);
									break;
								} else {
									Message m = new Message();
									m.what = ProgressBarActivity.GUI_THREADING_NOTIFIER;
									ProgressBarActivity.this.myMessageHandler
											.sendMessage(m);
								}
							} catch (Exception e) {
								e.printStackTrace();
							}
						}
					}

				}).start();
			}

		});
	}

	Handler myMessageHandler = new Handler() {
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case ProgressBarActivity.GUI_STOP_NOTIFIER:
				// myProgress1.setVisibility(View.GONE);
				// myProgress2.setVisibility(View.GONE);
				// Thread.currentThread().interrupt();
				break;
			case ProgressBarActivity.GUI_THREADING_NOTIFIER:
				if (!Thread.currentThread().isInterrupted()) {
					myProgress1.setProgress(intCounter);
					myProgress1.setProgress(intCounter);
					setProgress(intCounter * 100);// 设置标题栏中前景的一个进度条进度值
					// setSecondaryProgress(intCounter*100);//设置标题栏中后面的一个进度条进度值
					// Thread.currentThread().interrupt();
				}
				break;
			}
			super.handleMessage(msg);
		}
	};
}

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Android 广播大全 Intent Action 事件.

    Android 广播大全 Intent Action 事件 Android 广播大全 Intent Action 事件是 Android 系统中的一种核心机制,用于在应用程序之间传递信息和事件通知。 Intent 是一种轻量级的消息对象,用于描述一个操作的请求或...

    android 例子汇总源码

    "Android例子汇总源码"这个压缩包文件显然集合了多个Android应用实例的源代码,旨在帮助开发者深入理解和掌握Android编程的各种技巧和最佳实践。以下是根据标题和描述以及标签可能包含的一些关键知识点的详细解释: ...

    android_命令大全

    ### Android命令大全详解 #### 一、概述 在Android开发过程中,熟练掌握并运用各种命令行工具对于提高工作效率至关重要。本文将详细介绍与Android相关的几个常用命令及其使用方法,包括`android.bat`、`emulator....

    Android控件大全以及各布局控件的使用方式

    ### Android控件大全及各布局控件的使用详解 #### 一、Android控件概述 Android控件是指在Android应用程序中用于实现用户界面的各种组件。这些控件包括但不限于按钮、文本框、列表视图等。熟悉并掌握这些控件对于...

    Android开发实例大全 王东华

    《Android开发实例大全》是王东华先生撰写的一本深入浅出的Android应用程序开发指南,旨在帮助开发者通过实例学习和掌握Android平台上的编程技术。这本书覆盖了从基础到高级的各种主题,包括用户界面设计、数据存储...

    android代码大全7

    《Android代码大全7》是针对Android开发的一份综合资源,涵盖了Android编程的多个重要方面,旨在帮助开发者深入理解和掌握Android应用开发技术。本资源包含了丰富的示例代码、实践项目以及详细的解释,对于初学者和...

    android代码大全2

    "android代码大全2"这个资源很可能是为了帮助开发者深入理解并实践Android编程所准备的一系列代码示例和教程。下面,我将详细解释可能包含的一些重要知识点,并提供相关的背景和应用场景。 1. **Activity**:...

    android代码大全4

    "Android代码大全4"这一资源很可能包含了大量关于Android编程的实例和技巧,旨在帮助开发者提升技能,解决问题。以下将围绕Android开发的关键知识点进行详细阐述。 1. **环境搭建**:首先,Android开发需要安装...

    Android-API大全

    Android API大全是对Android系统提供的各种功能接口的详尽文档,对于Android开发者来说,是不可或缺的参考资料。本篇文章将深入探讨Android API的重要性和主要组成部分,以及如何利用这些API进行高效开发。 Android...

    Android UI 大全 里面包含所以特效大全的项目,都是每个特效一个项目的结构

    "Android UI 大全"是一个集合了各种特效的项目库,每个特效都有独立的项目结构,这为开发者提供了丰富的学习和参考资源。下面将详细介绍这个大全中的核心知识点。 1. **Android UI组件**:Android系统提供了多种UI...

    android ui组件大全

    以下是对“android ui组件大全”这个主题的详细解析: 标题:“android ui组件大全” 这个标题表明这是一个集合了Android平台各种UI控件的资源库或教程,旨在帮助开发者全面了解和实践Android UI开发。它可能包含...

    android源码大全

    "android源码大全"这个资源包无疑为开发者提供了一个宝贵的自学平台,涵盖了几乎所有的主流Android资源文件和源码。接下来,我们将深入探讨这个资源包中可能包含的重要知识点。 1. **Android系统架构**:Android...

    Android控件大全

    尽管提供的部分内容与搭建Android开发环境相关,但为了贴合“Android控件大全”的标题和描述,本篇内容将侧重于Android控件及其在不同布局中的应用。 ### Android控件大全及布局使用 #### 1. 常见控件介绍 **1.1 ...

    Android示例大全.rar

    "Android示例大全.rar"是一个宝贵的资源,它包含了丰富的示例代码,旨在帮助开发者深入理解Android应用开发的各种元素。以下是一些主要的知识点和详细解释: 1. **组件使用**: - **Activity**:Android应用的基本...

    Google Android SDK开发范例大全(完整版)

    《Google Android SDK开发范例大全》是一本专为Android开发者准备的全面指南,它涵盖了从初学者到高级开发者所需的各种技能和实践案例。这本书的完整版包含了大量的代码示例和详细解释,旨在帮助读者深入理解Android...

    Android示例大全(从培训到工作)

    "Android示例大全(从培训到工作)"是一个宝贵的资源集合,它涵盖了从初学者训练到专业开发工作所需的各种实例,旨在帮助开发者深入理解Android平台的工作原理和编程实践。 1. **Android基础知识**:这些示例通常...

    android应用案例开发大全-源代码

    《Android应用案例开发大全》是一本深入探讨Android应用程序开发的实战型书籍,其源代码提供了丰富的实例,旨在帮助开发者从实践中学习和理解Android开发的核心概念和技术。这些源代码覆盖了从基础到高级的各种应用...

    Android系统定制之Android.mk和Android.bp语法详解(精通版).mp4

    2.Android.mk和Android.bp语法大全及使用方法详解 3.Android.mk或Android.bp中引用Android的第三方(jar、aar、so)、Androidx的类库等的使用方法 4.Android.mk或Android.bp编译生成Apk、静态库、动态库、可执行文件等...

    安卓Android开发电子书大全 2018 (1/4)

    Android嵌入式智能操作系统是基于Linux内核和驱动的,对于HTC、华为等公司开发Android操作系统时,需要专门将Android移植到 特定硬件...Google.Android.SDK开发范例大全.第2版.rar Google.Android开发入门与实战.rar

Global site tag (gtag.js) - Google Analytics