首页 文章 精选 留言 我的

精选列表

搜索[android],共10000篇文章
优秀的个人博客,低调大师

android闹钟——原代码

手机当中肯定是有闹钟的,这是不用说的,要不然就不是手机了。对吧。 下面我根据广播的方式写了一个闹钟,大家请看图: 下面让我们看一下原代码的是如何写的, packagecom.smart; importjava.util.Calendar; importandroid.app.Activity; importandroid.content.BroadcastReceiver; importandroid.content.Context; importandroid.content.Intent; importandroid.content.SharedPreferences; importandroid.media.MediaPlayer; publicclassAlarmReceiverextendsBroadcastReceiver{ /** *通过广播进行扫描,是否到达时间后再响起闹铃 * **/ @Override publicvoidonReceive(Contextcontext,Intentintent){ SharedPreferencessharedPreferences=context.getSharedPreferences("alarm_record",Activity.MODE_PRIVATE); Stringhour=String.valueOf(Calendar.getInstance().get(Calendar.HOUR_OF_DAY)); Stringminute=String.valueOf(Calendar.getInstance().get(Calendar.MINUTE)); Stringtime=sharedPreferences.getString(hour+":"+minute,null);//小时与分, if(time!=null){//判断是否为空,然后通过创建, MediaPlayermediaPlayer=MediaPlayer.create(context,R.raw.llb); mediaPlayer.start();//开始 } } } packagecom.smart; importandroid.app.Activity; importandroid.app.AlarmManager; importandroid.app.AlertDialog; importandroid.app.PendingIntent; importandroid.content.Context; importandroid.content.DialogInterface; importandroid.content.Intent; importandroid.content.SharedPreferences; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.TextView; importandroid.widget.TimePicker; publicclassMainextendsActivityimplementsOnClickListener{ privateTextViewalarmRecord; privateSharedPreferencessharedPreferences; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); ButtonaddAlarm=(Button)findViewById(R.id.addAlarm); alarmRecord=(TextView)findViewById(R.id.alarmRecord); addAlarm.setOnClickListener(this); sharedPreferences=getSharedPreferences("alarm_record",Activity.MODE_PRIVATE); AlarmManageraManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE); Intentintent=newIntent(this,AlarmReceiver.class); PendingIntentpendingIntent=PendingIntent.getBroadcast(this,0,intent,0); aManager.setRepeating(AlarmManager.RTC,0,60*1000,pendingIntent); } @Override publicvoidonClick(Viewv){ Viewview=getLayoutInflater().inflate(R.layout.llb,null);// finalTimePickertimePicker=(TimePicker)view.findViewById(R.id.timepicker); timePicker.setIs24HourView(true);// newAlertDialog.Builder(this).setTitle("设置闹铃时间").setView(view).setPositiveButton("确定",newDialogInterface.OnClickListener(){ //设置标题 @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //按钮事件触发方法 StringtimeStr=String.valueOf(timePicker.getCurrentHour())+":"+String.valueOf(timePicker.getCurrentMinute()); alarmRecord.setText(alarmRecord.getText().toString()+"\n"+timeStr); sharedPreferences.edit().putString(timeStr,timeStr).commit(); } }).setNegativeButton("取消",null).show(); } } 本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/515862,如需转载请自行联系原作者

优秀的个人博客,低调大师

将XML文件写入android

----formshow newpath := '/storage/sdcard0/DCIM/100ANDRO/GRJKDAGLGXYSF'; if not TDirectory.Exists (newpath) then begin TDirectory.CreateDirectory (newpath); //Create a folder end; newpath := newpath + '/'; ----存入本机 var filename:string; newfile:Tfilestream; begin filename := 'update_sf_' + formatdatetime('yyyy-MM-dd',now) + gxyglkId; newfile := TFile.Create (newpath + filename); newfile.Free; clientdatasetlocal.SaveToFile(newpath + filename,dfXML); end; ---创建文件 var newpath:string; newfile:Tfilestream; begin newpath := '/storage/sdcard0/DCIM/100ANDRO/GRJKDAGLF'; if TFile.Exists (newpath + '/update.xml') then begin ShowMessage ('File exists'); end else begin newfile := TFile.Create (newpath + '/update.xml'); //Create a file (stream) newfile.Free; //Clear Stream // SpeedButton5Click (Self); //Close the window // TotalWork (path, True); //Update the list end; ---创建文件路径 var newpath:string; begin newpath := '/storage/sdcard0/DCIM/100ANDRO/GRJKDAGLF'; showmessage(newpath); if TDirectory.Exists (newpath) then begin ShowMessage ('Folder Exists!'); end else begin TDirectory.CreateDirectory (newpath); //Create a folder ShowMessage ('Folder created!'); // SpeedButton5Click (Self); //Close the window // TotalWork (path, True); //Update the list end; 本文转自鹅倌51CTO博客,原文链接:http://blog.51cto.com/kaixinbuliao/1535172,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android笔记:Fragment相关问题

这两天在使用Fragment做播放器里的播放列表和歌词显示两个界面的替换与更新时发现了很多问题,在此记录下问题及解决方法: 1.多个Fragment在replace后(并且都加入了后退栈ft.addToBackStack(null)),通过点击按钮事件移除顶层的fragment(使用remove方法),返回后的fragment的oncreatview方法有执行,但是页面仍然没法自行更新数据,页面空白,UI控件都消失了。 解决:不用remove方法,改用通过popBackStack()方法直接将栈顶的fragment弹出,然后直接恢复到要返回的那个fragment。 1 getSupportFragmentManager().popBackStack(); 2.使用popBackStack()方法后,页面控件恢复了,但是数据并没有同步更新。 解决:这个问题困扰了很久,后来讲replace方法改成了add方法,并且在add之前将原先的fragment隐藏掉hide。这样在点击按钮收回播放列表的fragment后,返回的歌词fragment的显示进度是同步的了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 // 打开播放列表 private void btnClick_playinglist() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); Fragment fragment = new PlayingListFragment(); if (isOpenPlayingList) //播放类表是否已打开 { getSupportFragmentManager().popBackStack(); mPlaying_img_openlist.setImageResource(R.drawable.icon_playing_img_openlist); isOpenPlayingList = false ; } else { ft.hide(mFragment); ft.add(R.id.playing_fragment_layout, fragment); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack( null ); mFragment = fragment; mPlaying_img_openlist.setImageResource(R.drawable.icon_playing_img_openlist_press); isOpenPlayingList = true ; } ft.commit(); } 3.通过按钮点击可以正常弹出顶层的播放列表fragment了,同时歌词界面的fragment仍然同步更新。但是用按钮点击打开播放列表fragment,然后用back键返回,第一次正常,多次后歌词fragment就开始变成空白。将fragment的背景颜色修改成红色,异常界面就是红色。由此可见,通过back键返回的fragment仍然没有恢复和更新。 解决:这个不清楚具体原因,应该是使用back返回键和通过调用popBackStack()方法来移除fragment的机制不一样所导致的。这个找不到具体的解决办法,只能先采用规避方法,通过重写back监听方法,进而调用popBackStack()解决了这个问题。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //重写监听back键按钮 @Override public void onBackPressed() { getSupportFragmentManager().popBackStack(); if (isOpenPlayingList) //判断播放列表是否打开 { mPlaying_img_openlist.setImageResource(R.drawable.icon_playing_img_openlist); isOpenPlayingList = false ; } else { super .onBackPressed(); } } 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1252393,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册