android 小闹钟

一:AclockACtivity(主界面)  设定闹钟,删除闹钟,选项菜单
package Fang.Aclock;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

public class AclockACtivity extends Activity {
    /** Called when the activity is first created. */
	 TextView setTime1;  
	    TextView setTime2;  
	    TextView setTime3;  
	    Button mButton1;  
	    Button mButton2;  
	    Button mButton3;  
	    Button mButton4;  
	    Button mButton5;  
	    Button mButton6;  
	      
	    String time1String = null;  
	    String time2String = null;  
	    String time3String = null;  
	    String defalutString = "目前无设置";  
	    
	    AlertDialog builder = null;  
	    Calendar c=Calendar.getInstance();  
	  
	    @Override  
	    public void onCreate(Bundle savedInstanceState)  {  
	    	super.onCreate(savedInstanceState);
	      setContentView(R.layout.main);  
	              
	      //取得活动的Preferences对象   
	      SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);  
	      time1String = settings.getString("TIME1", defalutString);  
	      time2String = settings.getString("TIME2", defalutString);  
	      time3String = settings.getString("TIME3", defalutString);  
	        
	      InitButton1();  
	      InitButton2();  
	      InitButton3();  
	      InitButton4();  
	      InitButton5();  
	      InitButton6();   
	        
	      setTime1.setText(time1String);  
	      setTime3.setText(time2String);  
	      setTime2.setText(time3String);  
	      
	      //menu
	    } 
	    @Override
		public boolean onCreateOptionsMenu(Menu menu) {
			// TODO Auto-generated method stub
		
			menu.add(0, 0, 0,"退出");
			menu.add(0, 1, 1,"设置铃声");
			//return super.onCreateOptionsMenu(menu);
			return true;
		}

		@Override
		public boolean onOptionsItemSelected(MenuItem item) {
			// TODO Auto-generated method stub
			if(item.getItemId()==0){
				builder = new AlertDialog.Builder(AclockACtivity.this)  
				   
			     .setTitle("温馨提示:")  
			     .setMessage("您是否要退出闹钟程序!!!")  
			     .setPositiveButton("确定",  
			       new DialogInterface.OnClickListener() {  
			        public void onClick(DialogInterface dialog,  
			          int whichButton) {  
			        	AclockACtivity.this.finish();  
			        }  
			       })  
			     .setNegativeButton("取消",  
			       new DialogInterface.OnClickListener() {  
			        public void onClick(DialogInterface dialog,  
			          int whichButton) {  
			         builder.dismiss();  
			        }  
			       }).show();
			}
			if(item.getItemId()==1) {
				Intent i=new Intent(AclockACtivity.this,Query.class);
				startActivity(i);
			}
			return super.onOptionsItemSelected(item);
		}  
	      
	    public void InitButton1()  
	    {  
	       setTime1=(TextView) findViewById(R.id.setTime1);  
	       mButton1=(Button)findViewById(R.id.mButton1);  
	       mButton1.setOnClickListener(new View.OnClickListener()  
	       {  
	         public void onClick(View v)  
	         {  
	           c.setTimeInMillis(System.currentTimeMillis());  
	           int mHour=c.get(Calendar.HOUR_OF_DAY);  
	           int mMinute=c.get(Calendar.MINUTE);  
	             
	            
	           new TimePickerDialog(AclockACtivity.this,  
	             new TimePickerDialog.OnTimeSetListener()  
	             {                  @Override
	               public void onTimeSet(TimePicker view,int hourOfDay,  
	                                     int minute)  
	               {  
	                 c.setTimeInMillis(System.currentTimeMillis());  
	                 c.set(Calendar.HOUR_OF_DAY,hourOfDay);  
	                 c.set(Calendar.MINUTE,minute);  
	                 c.set(Calendar.SECOND,0);  
	                 c.set(Calendar.MILLISECOND,0);  
	                   
	                 Intent intent = new Intent(AclockACtivity.this, CallAlarm.class);  
	                 PendingIntent sender=PendingIntent.getBroadcast(  
	                		 AclockACtivity.this,0, intent, 0);  
	                 AlarmManager am;  
	                 am = (AlarmManager)getSystemService(ALARM_SERVICE);  
	                 am.set(AlarmManager.RTC_WAKEUP,  
	                        c.getTimeInMillis(),  
	                        sender  
	                       );  
	                 String tmpS=format(hourOfDay)+":"+format(minute);  
	                 setTime1.setText(tmpS);  
	                   
	                 //SharedPreferences保存数据,并提交   
	                 SharedPreferences time1Share = getPreferences(0);  
	                 SharedPreferences.Editor editor = time1Share.edit();  
	                 editor.putString("TIME1", tmpS);  
	                 editor.commit();  
	                   
	                 Toast.makeText(AclockACtivity.this,"设置闹钟时间为"+tmpS,  
	                   Toast.LENGTH_SHORT)  
	                   .show();  
	               }            
	             },mHour,mMinute,true).show();  
	         }  
	       });  
	       //System.out.println("aaaaaaaaaaaaa");
	    }  
	  
	    public void InitButton2()  
	    {  
	       mButton2=(Button) findViewById(R.id.mButton2);  
	       mButton2.setOnClickListener(new View.OnClickListener()  
	       {  
	         public void onClick(View v)  
	         {  
	           Intent intent = new Intent(AclockACtivity.this, CallAlarm.class);  
	           PendingIntent sender=PendingIntent.getBroadcast(  
	        		   AclockACtivity.this,0, intent, 0);  
	           AlarmManager am;  
	           am =(AlarmManager)getSystemService(ALARM_SERVICE);  
	           am.cancel(sender);  
	           Toast.makeText(AclockACtivity.this,"闹钟时间删除",  
	                          Toast.LENGTH_SHORT).show();  
	           setTime1.setText("目前无设置");  
	             
	           SharedPreferences time1Share = getPreferences(0);  
	              SharedPreferences.Editor editor = time1Share.edit();  
	              editor.putString("TIME1", "目前无设置");  
	              editor.commit();  
	         }  
	       });  
	    }  
	      
	    public void InitButton3()  
	    {  
	       setTime3=(TextView) findViewById(R.id.setTime5);  
	       mButton3=(Button)findViewById(R.id.mButton5);  
	       mButton3.setOnClickListener(new View.OnClickListener()  
	       {  
	         public void onClick(View v)  
	         {  
	           c.setTimeInMillis(System.currentTimeMillis());  
	           int mHour=c.get(Calendar.HOUR_OF_DAY);  
	           int mMinute=c.get(Calendar.MINUTE);  
	             
	            
	           new TimePickerDialog(AclockACtivity.this,  
	             new TimePickerDialog.OnTimeSetListener()  
	             {                  
	               public void onTimeSet(TimePicker view,int hourOfDay,  
	                                     int minute)  
	               {  
	                 c.setTimeInMillis(System.currentTimeMillis());  
	                 c.set(Calendar.HOUR_OF_DAY,hourOfDay);  
	                 c.set(Calendar.MINUTE,minute);  
	                 c.set(Calendar.SECOND,0);  
	                 c.set(Calendar.MILLISECOND,0);  
	                   
	                 Intent intent = new Intent(AclockACtivity.this, CallAlarm.class);  
	                 PendingIntent sender=PendingIntent.getBroadcast(  
	                		 AclockACtivity.this,0, intent, 0);  
	                 AlarmManager am;  
	                 am = (AlarmManager)getSystemService(ALARM_SERVICE);  
	                 am.set(AlarmManager.RTC_WAKEUP,  
	                        c.getTimeInMillis(),  
	                        sender  
	                       );  
	                 String tmpS=format(hourOfDay)+":"+format(minute);  
	                 setTime3.setText(tmpS);  
	                   
	                 //SharedPreferences保存数据,并提交   
	                 SharedPreferences time2Share = getPreferences(1);  
	                 SharedPreferences.Editor editor = time2Share.edit();  
	                 editor.putString("TIME2", tmpS);  
	                 editor.commit();  
	                   
	                 Toast.makeText(AclockACtivity.this,"设置闹钟时间为"+tmpS,  
	                   Toast.LENGTH_SHORT)  
	                   .show();  
	               }            
	             },mHour,mMinute,true).show();  
	         }  
	       });  
	    }  
	      
	    public void InitButton4()  
	    {  
	       mButton4=(Button) findViewById(R.id.mButton6);  
	       mButton4.setOnClickListener(new View.OnClickListener()  
	       {  
	         public void onClick(View v)  
	         {  
	           Intent intent = new Intent(AclockACtivity.this, CallAlarm.class);  
	           PendingIntent sender=PendingIntent.getBroadcast(  
	        		   AclockACtivity.this,0, intent, 0);  
	           AlarmManager am;  
	           am =(AlarmManager)getSystemService(ALARM_SERVICE);  
	           am.cancel(sender);  
	           Toast.makeText(AclockACtivity.this,"闹钟删除",  
	                          Toast.LENGTH_SHORT).show();  
	           setTime3.setText("目前无设置");  
	             
	           //SharedPreferences保存数据,并提交   
	              SharedPreferences time2Share = getPreferences(1);  
	              SharedPreferences.Editor editor = time2Share.edit();  
	              editor.putString("TIME2", "目前无设置");  
	              editor.commit();  
	         }  
	       });  
	    }  
	      
	    public void InitButton5()  
	    {   
	       setTime2=(TextView) findViewById(R.id.setTime2);  
	       LayoutInflater factory = LayoutInflater.from(this);  
	       final View setView = factory.inflate(R.layout.timeset,null);  
	       final TimePicker tPicker=(TimePicker)setView  
	                                  .findViewById(R.id.tPicker);  
	       tPicker.setIs24HourView(true);  
	  
	       final AlertDialog di=new AlertDialog.Builder(AclockACtivity.this)  
	               
	             .setTitle("设置")  
	             .setView(setView)  
	             .setPositiveButton("确定",  
	               new DialogInterface.OnClickListener()  
	              {  
	                public void onClick(DialogInterface dialog, int which)  
	                {  
	                  EditText ed=(EditText)setView.findViewById(R.id.mEdit);  
	                  int times=Integer.parseInt(ed.getText().toString())  
	                             *1000;  
	                  c.setTimeInMillis(System.currentTimeMillis());  
	                  c.set(Calendar.HOUR_OF_DAY,tPicker.getCurrentHour());  
	                  c.set(Calendar.MINUTE,tPicker.getCurrentMinute());  
	                  c.set(Calendar.SECOND,0);  
	                  c.set(Calendar.MILLISECOND,0);  
	  
	                  Intent intent = new Intent(AclockACtivity.this,  
	                                             CallAlarm.class);  
	                  PendingIntent sender = PendingIntent.getBroadcast(  
	                		  AclockACtivity.this,1, intent, 0);  
	                  AlarmManager am;  
	                  am = (AlarmManager)getSystemService(ALARM_SERVICE);  
	                  am.setRepeating(AlarmManager.RTC_WAKEUP,  
	                            c.getTimeInMillis(),times,sender);  
	                  String tmpS=format(tPicker.getCurrentHour())+":"+  
	                              format(tPicker.getCurrentMinute());  
	                  String subStr = "设置闹钟时间为"+tmpS+  
	                           "开始,重复间隔为"+times/1000+"秒";  
	                  setTime2.setText("设置闹钟时间为"+tmpS+  
	                                   "开始,重复间隔为"+times/1000+"秒");  
	                    
	                  //SharedPreferences保存数据,并提交     
	                  SharedPreferences time3Share = getPreferences(2);  
	               SharedPreferences.Editor editor = time3Share.edit();  
	               editor.putString("TIME3", subStr);  
	               editor.commit();  
	                    
	                  Toast.makeText(AclockACtivity.this,"设置闹钟为"+tmpS+  
	                                 "开始,重复间隔为"+times/1000+"秒",  
	                                 Toast.LENGTH_SHORT).show();  
	                }  
	              })  
	             .setNegativeButton("取消",  
	               new DialogInterface.OnClickListener()  
	              {  
	                public void onClick(DialogInterface dialog, int which)  
	                {  
	                }  
	              }).create();  
	  
	       mButton5=(Button) findViewById(R.id.mButton3);  
	       mButton5.setOnClickListener(new View.OnClickListener()  
	       {  
	         public void onClick(View v)  
	         {  
	           c.setTimeInMillis(System.currentTimeMillis());  
	           tPicker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));  
	           tPicker.setCurrentMinute(c.get(Calendar.MINUTE));  
	           di.show();  
	         }  
	       });  
	    }  
	      
	    public void InitButton6()  
	    {  
	       mButton6=(Button) findViewById(R.id.mButton4);  
	       mButton6.setOnClickListener(new View.OnClickListener()  
	       {  
	         public void onClick(View v)  
	         {  
	           Intent intent = new Intent(AclockACtivity.this, CallAlarm.class);  
	           PendingIntent sender = PendingIntent.getBroadcast(  
	        		   AclockACtivity.this,1, intent, 0);  
	           AlarmManager am;  
	           am = (AlarmManager)getSystemService(ALARM_SERVICE);  
	           am.cancel(sender);  
	           Toast.makeText(AclockACtivity.this,"闹钟时间删除",  
	                          Toast.LENGTH_SHORT).show();  
	           setTime2.setText("目前无设置");  
	           //SharedPreferences保存数据,并提交     
	              SharedPreferences time3Share = getPreferences(2);  
	           SharedPreferences.Editor editor = time3Share.edit();  
	           editor.putString("TIME3", "目前无设置");  
	           editor.commit();  
	         }  
	       });  
	    }  
	         // 
	 /* @Override  
	  public boolean onKeyUp(int keyCode, KeyEvent event) {  
	     
	            if(keyCode == KeyEvent.KEYCODE_BACK){  
	   builder = new AlertDialog.Builder(AclockACtivity.this)  
	   
	     .setTitle("温馨提示:")  
	     .setMessage("您是否要退出闹钟程序!!!")  
	     .setPositiveButton("确定",  
	       new DialogInterface.OnClickListener() {  
	        public void onClick(DialogInterface dialog,  
	          int whichButton) {  
	        	AclockACtivity.this.finish();  
	        }  
	       })  
	     .setNegativeButton("取消",  
	       new DialogInterface.OnClickListener() {  
	        public void onClick(DialogInterface dialog,  
	          int whichButton) {  
	         builder.dismiss();  
	        }  
	       }).show();  
	            }  
	            return true;  
	  }*/  
	  
	  private String format(int x)  
	    {  
	      String s=""+x;  
	      if(s.length()==1) s="0"+s;  
	      return s;  
	    }

	
	
	} 

二: AlarmAlert   响铃 并弹出表格 接听器启动

package Fang.Aclock;

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

import android.app.Activity;
import android.app.TabActivity;
import android.content.Context;
import android.content.SharedPreferences.Editor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class AlarmAlert extends Activity {
	public static MediaPlayer player=new MediaPlayer();
	public static EditText e1 = null;
	public static String path="/sdcard/aaaaaa.mp3";
	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);setContentView(R.layout.show);
		Button b1=(Button) findViewById(R.id.b1);
		Button b2=(Button) findViewById(R.id.b2);
    	
		 try{
			  player.reset();
			  player.setDataSource(path);
			  player.prepare();
			  player.start();
		  }catch(IOException e){
			  e.printStackTrace();
		  }	
		  player.setOnCompletionListener(
			       new MediaPlayer.OnCompletionListener() 
			     { 
			       // @Override 
			       /*覆盖文件播出完毕事件*/
			       public void onCompletion(MediaPlayer arg0) 
			       { 
			         try 
			         { 
			          player.start();
			          System.out.println("循环播放!");
			         } 
			         catch (Exception e) 
			         { 
			           e.printStackTrace(); 
			         } 
			       } 
			     }); 
	 e1=(EditText)findViewById(R.id.edittext1);
		Log.d("tag", "aaaaaaaaaaaaaaaaaaaaaaaa");
		//System.out.println("stop"+"   "+CallAlarm.player.isPlaying());
	
		b1.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				//写入文件
			
				String c=e1.getText().toString();
				try{
					File sdDir=Environment.getExternalStorageDirectory();
					System.out.println(sdDir.toString());
					save(c);
					Toast.makeText(AlarmAlert.this, "保存成功", 5).show();
				    }catch(Exception a){Toast.makeText(AlarmAlert.this, "保存失败", 6).show();
				    a.printStackTrace();}
		      
			}
			
		});
		e1.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				System.out.println("点ddddddd");
                 	player.stop();
			}
			
		});
		b2.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				  e1.setText("");
			}
			
		});
		
	}
	protected void save( String c) throws Exception {
		// TODO Auto-generated method stub
		//FileOutputStream out=openFileOutput(s,Context.MODE_APPEND);
	//DataOutputStream dou=new DataOutputStream(out);
	//dou.writeChars(c);
	//dou.close();
		boolean sdCardExit=Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

		if(sdCardExit){
			File sdDir=Environment.getExternalStorageDirectory();
		FileWriter fw=new FileWriter( sdDir.toString()+"/fangchao.txt", true);
		Calendar calendar1=Calendar.getInstance();
		Date d=calendar1.getTime();
		fw.write(d.toString()+"  "+c);
		Log.d("sadsae", "房超");
		fw.write("\r\n");
		fw.close();
		}
	}

}
三. CallAlarm  接听器启动AlarmAlert

package Fang.Aclock;

import java.io.IOException;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;

 public class CallAlarm extends BroadcastReceiver{
 

@Override
public void onReceive(Context context, Intent intent) {
	// TODO Auto-generated method stub
	// TODO Auto-generated method stub
	
	Log.d("aaa", "abc");
   System.out.println("OnReceive");
 
  Intent i = new Intent(context, AlarmAlert.class); 
    Bundle bundleRet = new Bundle();  
   bundleRet.putString("STR_CALLER", "");  
    i.putExtras(bundleRet);  
  i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
   context.startActivity(i);  
	 
  
    /*player.reset();
	    try {
			player.setDataSource(path);
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 try {
				player.prepare();
			} catch (IllegalStateException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
player.start();

}*/
 }





		
 }

四.Query 从文件中查找音频文件并显示在listview中

package Fang.Aclock;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;




import android.app.Activity;
import android.app.ListActivity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;


public class Query extends Activity{
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
		this.setTitle("选择铃声");
		
		
		final ContentResolver mResolver = this.getContentResolver();
		Cursor  cursor = mResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,null,null, 
				MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
		


//startManagingCursor(cursor);//交由Activity管理  这样Cursor的生命周期和Activity便能够自动同步,省去自己手动管理Cursor。
ListView list=new ListView(this);
		
		//String path=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); 
		
		/*String [] from={"music"};
		int [] to={R.id.text0};
		SimpleCursorAdapter adapter=new SimpleCursorAdapter(getApplicationContext(),R.layout.row,cursor,from,to);
ListView listview =getListView();
listview.setAdapter(adapter);*/
	 
 
         
	        
//	        while(cursor.moveToNext()){
//	       String path=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); 
//	       String tilte = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));    
//	      
//	       } 
	        for (int i = 0; i < cursor.getCount(); i++)
	        {			cursor.moveToNext();	
	        // 找到歌曲标题和总时间对应的列索引			
	        int indexTitle = cursor.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE);			
	        
	        int indexALBUM = cursor					.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM);		
	        String strTitle = cursor.getString(indexTitle);		
	      
	        HashMap<String, Object> nowMap = new HashMap<String, Object>();			
	        nowMap.put("歌曲名:", strTitle );			
	      data.add(nowMap);		
	        }
	        // data.add("aaaaaaa");
	    
	        list.setAdapter(new ArrayAdapter<Map<String, Object>> (this,  android.R.layout.simple_expandable_list_item_1,data)); 
			setContentView(list);
			list.setOnItemClickListener(new OnItemClickListener(){


				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1,
						int arg2, long arg3) {
					// TODO Auto-generated method stub
					final int temp2=arg2;
				
					Cursor  cursor = mResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,null,null, 
							MediaStore.Audio.Media.DEFAULT_SORT_ORDER);	
					cursor.moveToPosition(temp2);
					if(cursor.isAfterLast()) finish();
					int indexpath = cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DATA);	
					String strpath = cursor.getString(indexpath);	
					AlarmAlert.path=strpath;
			Toast.makeText(getApplicationContext(), "铃声设置成功", 6).show();
					System.out.println(strpath);

}

}); } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值