当前位置:  编程技术>移动开发
本页文章导读:
    ▪通报示例1        通知示例1 Java代码   public class MainActivity extends Activity {  private Button send, cancel;  private Notification n;  private NotificationManager mn;  Vibrator vibrator;  @Override  public void onCreate(Bundle savedInstanceState.........
    ▪ 并发访问事例        并发访问例子 假设在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为Data类,同时,将有多个访问类,专门用于在同一时刻访问这同.........
    ▪ AlertDialog 运用 扩展       AlertDialog 使用 扩展 AlertDialog     [功能] 也是一种Dialog     [原理] 1. AlertDialog 本身并没有构造函数 即 不可以通过 new AlertDialog(...) 来初始化 而只能通过 AlertDialog.Builder 2. 而 AlertDialog.Builder 比.........

[1]通报示例1
    来源: 互联网  发布时间: 2014-02-18
通知示例1
Java代码  
public class MainActivity extends Activity {  private Button send, cancel;  private Notification n;  private NotificationManager mn;  Vibrator vibrator;
 @Override  public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.main);
  send = (Button) findViewById(R.id.btn1);   cancel = (Button) findViewById(R.id.btn2);
  String service = NOTIFICATION_SERVICE;   mn = (NotificationManager) getSystemService(service);
  n = new Notification();   int icon = n.icon = R.drawable.ss;
  String tickerText = "您有新的消息,请查收";    n.flags =Notification.FLAG_ONGOING_EVENT;//如果添加这一句,则用户删除不了,出现在正在运行中,不加就等于是一个通知,   long when = System.currentTimeMillis();   n.icon = icon;   n.tickerText = tickerText;   n.when = when;
  send.setOnClickListener(sends);   cancel.setOnClickListener(cancels);  }
 private OnClickListener sends = new OnClickListener() {
  @Override   public void onClick(View arg0) {
   // vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);    // long[] pattern = { 800, 50, 400, 30 }; // 根据指定的模式进行震动    // // //第一个参数:该数组中第一个元素是等待多长的时间才启动震动,    // // //之后将会是开启和关闭震动的持续时间,单位为毫秒    // // //第二个参数:重复震动时在pattern中的索引,如果设置为-1则表示不重复震动<P>//vVi.vibrate(    // // 500 );  // 震动0.5 秒    // // //启动震动,并持续指定的时间    // vibrator.vibrate(pattern, 2);
   // 根据指定的模式进行震动    // //第一个参数:该数组中第一个元素是等待多长的时间才启动震动,    // //之后将会是开启和关闭震动的持续时间,单位为毫秒    // //第二个参数:重复震动时在pattern中的索引,如果设置为-1则表示不重复震动<P>//vVi.vibrate(    // 500 );  // 震动0.5 秒    // //启动震动,并持续指定的时间    System.out.println("11111111111111");    // vibrator.vibrate(pattern, 2);    // -1不重复,非-1为从pattern的指定下标开始重复    Intent intent = new Intent(MainActivity.this, MainActivity.class);    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP      | Intent.FLAG_ACTIVITY_NEW_TASK);    PendingIntent pi = PendingIntent.getActivity(MainActivity.this,R.string.app_name,      intent, PendingIntent.FLAG_UPDATE_CURRENT);    n.setLatestEventInfo(MainActivity.this, "有急事", "请您马上到办公司开会", pi);    mn.notify(R.string.app_name, n);    
  }  };
 private OnClickListener cancels = new OnClickListener() {
  @Override   public void onClick(View arg0) {    mn.cancel(R.string.app_name);   }  };
}

    
[2] 并发访问事例
    来源: 互联网  发布时间: 2014-02-18
并发访问例子
假设在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为Data类,同时,将有多个访问类,专门用于在同一时刻访问这同一个数据对象。
为了完成上述并发访问同一资源的功能,需要引入锁(Lock)的概念,也就是说,某个时刻,当有一个访问类访问这个数据对象时,这个数据对象必须上锁(Locked),用完后就立即解锁(unLocked),再供其它访问类访问。
对访问共享数据的类创建一个基类,所有的数据访问类均继承这个基类。
多个访问类同时访问一个共享数据对象时,每个访问类在访问这个数据对象时,需要将数据对象上锁,访问完成后,再实行解锁,供其它并发线程访问

    
[3] AlertDialog 运用 扩展
    来源: 互联网  发布时间: 2014-02-18
AlertDialog 使用 扩展

AlertDialog

 

 

[功能]

也是一种Dialog

 

 

[原理]

1. AlertDialog 本身并没有构造函数 即 不可以通过 new AlertDialog(...) 来初始化 而只能通过 AlertDialog.Builder

2. 而 AlertDialog.Builder 比较像是AlertDialog的构造器 用于接收各种和 AlertDialog 有关的参数 然后通过 create() 来创建目标 AlertDialog

 

[代码 步骤]

1. 定义 AlertDialog.Builder 实例 并接受一些参数 如:图片 标题 正文

Java代码  
  • ab = new AlertDialog.Builder(this);  
  • ab = new AlertDialog.Builder(this);

     

    Java代码  
  • ab.setTitle("HelloAlert").setMessage("Warning: its Alert Demo!").setIcon(R.drawable.robot);  
  • ab.setTitle("HelloAlert").setMessage("Warning: its Alert Demo!").setIcon(R.drawable.robot);

     

     

     2. 根据AlertDialog.Builder 创建 相应的 AlertDialog

    Java代码  
  • aDialog = ab.create();  
  • aDialog = ab.create();

     

     

    3. 弹出 AlertDialog

    Java代码  
  • findViewById(R.id.button).setOnClickListener(new OnClickListener(){   
  •             public void onClick(View v) {   
  •                 // TODO Auto-generated method stub   
  •                 aDialog.show();   
  •             }   
  •         });  
  • findViewById(R.id.button).setOnClickListener(new OnClickListener(){
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				aDialog.show();
    			}
            });

     

     

    4. 取消 AlertDialog

    写道
    因为该AlertDialog 所采用的布局是系统的 其只接受Text 不接受Button 但是发现可以在AlertDialog 上面注册按键监听 即AlertDialog.setOnKeyListener()
    不过因为该监听器只负责监听按键事件 而鼠标点击是不管的 所以请点击任意按键关闭之

     

    Java代码  
  • aDialog.setOnKeyListener(new OnKeyListener(){   
  •   
  •             @Override  
  •             public boolean onKey(DialogInterface arg0, int arg1, KeyEvent arg2) {   
  •                 // TODO Auto-generated method stub   
  •                 aDialog.dismiss();   
  •                    
  •                 return true;   
  •             }   
  •                
  •         });  
  • aDialog.setOnKeyListener(new OnKeyListener(){
    
    			@Override
    			public boolean onKey(DialogInterface arg0, int arg1, KeyEvent arg2) {
    				// TODO Auto-generated method stub
    				aDialog.dismiss();
    				
    				return true;
    			}
            	
            });

     

     

     * emulator 运行截图:

     

     

     

     

    5. 以上所采用的都是AlertDialog 系统默认的布局 现在说自定义布局的情况 并添加一个用于取消AlertDialog 的 Button

     

    * 定义其布局 hello.main

    Xml代码  
  • <?xml version="1.0" encoding="utf-8"?>  
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  •     android:orientation="horizontal"  
  •     android:layout_width="fill_parent"  
  •     android:layout_height="fill_parent"  
  •     android:padding="10dp"  
  •     >  
  • <ImageView     
  •     android:id="@+id/image"  
  •     android:layout_width="wrap_content"    
  •     android:layout_height="wrap_content"    
  •     android:src="/blog_article/@drawable/robot/index.html" />  
  • <LinearLayout    
  •     android:orientation="vertical"  
  •     android:layout_width="wrap_content"  
  •     android:layout_height="wrap_content"  
  •     >  
  • <TextView     
  •     android:id="@+id/title"  
  •     android:layout_width="wrap_content"    
  •     android:layout_height="wrap_content"    
  •     android:text="HelloAlert!"  
  •     />  
  • <TextView     
  •     android:id="@+id/message"  
  •     android:layout_width="wrap_content"    
  •     android:layout_height="wrap_content"    
  •     android:paddingTop="10dip"  
  •     />  
  •  </LinearLayout>  
  • </LinearLayout>  
  • <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="10dp"
        >
    <ImageView  
    	android:id="@+id/image"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="/blog_article/@drawable/robot/index.html" />
    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
    <TextView  
    	android:id="@+id/title"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="HelloAlert!"
        />
    <TextView  
    	android:id="@+id/message"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:paddingTop="10dip"
        />
     </LinearLayout>
    </LinearLayout>

     

     

    * 通过LayoutInflater 得到上面 hello.xml 布局的 View view

    Java代码  
  • view = this.getLayoutInflater().inflate(R.layout.hello, null);  
  • view = this.getLayoutInflater().inflate(R.layout.hello, null);

     

    * 指定AlertDialog.Builder 所需的布局 并返回目标AlertDialog

    Java代码  
  • ab.setView(view);   
  •   
  • aDialog = ab.create();  
  • ab.setView(view);
    
    aDialog = ab.create();

     

    * 通过 view.findViewById() 得到 目标View 然后设置其内容 如:

    Java代码  
  • TextView title = (TextView) view.findViewById(R.id.title);   
  •         title.setTextSize(20);   
  •         title.setTextColor(Color.RED);   
  •         title.setText("HelloAlert");   
  •            
  •         TextView message = (TextView) view.findViewById(R.id.message);   
  •         message.setText("Warning: it's Alert Demo!");  
  • TextView title = (TextView) view.findViewById(R.id.title);
            title.setTextSize(20);
            title.setTextColor(Color.RED);
            title.setText("HelloAlert");
            
            TextView message = (TextView) view.findViewById(R.id.message);
            message.setText("Warning: it's Alert Demo!");

     

     

    * 弹出 AlertDialog

    Java代码  
  • findViewById(R.id.button).setOnClickListener(new OnClickListener(){   
  •             public void onClick(View v) {   
  •                 // TODO Auto-generated method stub   
  •                 aDialog.show();   
  •             }   
  •         });  
  • findViewById(R.id.button).setOnClickListener(new OnClickListener(){
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				aDialog.show();
    			}
            });

     

    * 取消 AlertDialog

    写道
    在整个View 上注册按键监听器 关闭AlertDialog

     

    Java代码  
  • view.setOnClickListener(new OnClickListener(){   
  •             public void onClick(View v) {   
  •                 // TODO Auto-generated method stub   
  •                 aDialog.dismiss();   
  •             }   
  •         });  
  • view.setOnClickListener(new OnClickListener(){
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				aDialog.dismiss();
    			}
            });

     

     * emulator 运行截图:

     


        
    最新技术文章:
    ▪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按钮单击事件的四种常用写法总结 iis7站长之家
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3