当前位置:  编程技术>移动开发
本页文章导读:
    ▪施用Fragment实现类似Tab的需求        使用Fragment实现类似Tab的需求 大家都知道可以使用TabHost来实现, 不过这种实现已经是被deprecated, 其实是可以通过Fragment来实现, 不过如果是Fragment的话好像只能每次new一个fragment,这样感.........
    ▪ 判断目前网络是否可用和调用系统设置wifi界面        判断当前网络是否可用和调用系统设置wifi界面 需要用到的权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET"/>//判断当前.........
    ▪ 大架构更新,PhoneGap3.0就要发布!一起来看看有什么值得期待的       大架构更新,PhoneGap3.0即将发布!一起来看看有什么值得期待的         <!--[diy=diysummarytop]--> <!--[/diy]--><!--[diy=diysummarybottom]--> <!--[/diy]--> <!--[diy=diycontenttop]-->   <!--[.........

[1]施用Fragment实现类似Tab的需求
    来源: 互联网  发布时间: 2014-02-18
使用Fragment实现类似Tab的需求
大家都知道可以使用TabHost来实现, 不过这种实现已经是被deprecated, 其实是可以通过Fragment来实现, 不过如果是Fragment的话好像只能每次new一个fragment,这样感觉不太好, 按常理如果是以前有创建过fragment,下一次应该还是显示那个fragment实例。 通过google得知可以通过FragmentTransaction的attach和detach来实现。 下面贴下代码。

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.TabHost;
 
public class MainActivity extends FragmentActivity {
        TabHost tHost;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
        tHost = (TabHost) findViewById(android.R.id.tabhost);
        tHost.setup();
         
        /** Defining Tab Change Listener event. This is invoked when tab is changed */
        TabHost.OnTabChangeListener tabChangeListener = new TabHost.OnTabChangeListener() {
                         
                        @Override
                        public void onTabChanged(String tabId) {
                                android.support.v4.app.FragmentManager fm =   getSupportFragmentManager();
                                AndroidFragment androidFragment = (AndroidFragment) fm.findFragmentByTag("android");
                                AppleFragment appleFragment = (AppleFragment) fm.findFragmentByTag("apple");
                                android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
                                 
                                /** Detaches the androidfragment if exists */
                                if(androidFragment!=null)
                                        ft.detach(androidFragment);
                                 
                                /** Detaches the applefragment if exists */
                                if(appleFragment!=null)
                                        ft.detach(appleFragment);
                                 
                                /** If current tab is android */
                                if(tabId.equalsIgnoreCase("android")){
                                         
                                        if(androidFragment==null){                
                                                /** Create AndroidFragment and adding to fragmenttransaction */
                                                ft.add(R.id.realtabcontent,new AndroidFragment(), "android");                                                
                                        }else{
                                                /** Bring to the front, if already exists in the fragmenttransaction */
                                                ft.attach(androidFragment);                                                
                                        }
                                         
                                }else{        /** If current tab is apple */
                                        if(appleFragment==null){
                                                /** Create AppleFragment and adding to fragmenttransaction */
                                                ft.add(R.id.realtabcontent,new AppleFragment(), "apple");                                                
                                        }else{
                                                /** Bring to the front, if already exists in the fragmenttransaction */
                                                ft.attach(appleFragment);                                                
                                        }
                                }
                                ft.commit();                                
                        }
                };
                 
                 
                /** Setting tabchangelistener for the tab */
                tHost.setOnTabChangedListener(tabChangeListener);
                 
                /** Defining tab builder for Andriod tab */
        TabHost.TabSpec tSpecAndroid = tHost.newTabSpec("android");
        tSpecAndroid.setIndicator("Android",getResources().getDrawable(R.drawable.android));        
        tSpecAndroid.setContent(new DummyTabContent(getBaseContext()));
        tHost.addTab(tSpecAndroid);
         
         
        /** Defining tab builder for Apple tab */
        TabHost.TabSpec tSpecApple = tHost.newTabSpec("apple");
        tSpecApple.setIndicator("Apple",getResources().getDrawable(R.drawable.apple));        
        tSpecApple.setContent(new DummyTabContent(getBaseContext()));
        tHost.addTab(tSpecApple);
         
     }   
          
}

    
[2] 判断目前网络是否可用和调用系统设置wifi界面
    来源: 互联网  发布时间: 2014-02-18
判断当前网络是否可用和调用系统设置wifi界面
需要用到的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
//判断当前网络是否可用
	public boolean note_Intent(Context context) {  
	    ConnectivityManager con = (ConnectivityManager) context  
	        .getSystemService(Context.CONNECTIVITY_SERVICE);  
	    NetworkInfo networkinfo = con.getActiveNetworkInfo();  
	    if (networkinfo == null || !networkinfo.isAvailable()) {  
	    // 当前网络不可用   
	        Toast.makeText(context.getApplicationContext(), "当前网络不可用",  
	        Toast.LENGTH_SHORT).show();  
	        return false;  
	    }  
	    boolean wifi = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI)  
	        .isConnectedOrConnecting();  
	    if (!wifi) { // 提示使用wifi   
	        Toast.makeText(context.getApplicationContext(), "建议您使用WIFI以减少流量!",  
	        Toast.LENGTH_SHORT).show();  
	    }  
	    return true;  
	  
	}

跳转到系统设置WIFI界面中
Intent localIntent = new Intent();
		localIntent.setComponent(new ComponentName("com.android.settings",
				"com.android.settings.wifi.WifiPickerActivity"));
		startActivityForResult(localIntent, 100);

    
[3] 大架构更新,PhoneGap3.0就要发布!一起来看看有什么值得期待的
    来源: 互联网  发布时间: 2014-02-18
大架构更新,PhoneGap3.0即将发布!一起来看看有什么值得期待的
 

 

 
 

<!--[diy=diysummarytop]--> <!--[/diy]--><!--[diy=diysummarybottom]--> <!--[/diy]-->

<!--[diy=diycontenttop]-->
 
<!--[/diy]-->   开发团队执着于未来移动互联网的开发,过去的一年我们的主题是符合开发者的使用习惯。今年,这里有数以万计的新特性值得我们兴奋!

  下面是新特性预览
  •   更实用的工具
  我们已经开发出更容易快速切换原生平台通过调整CLI工具,而无需学习新的编程语言。
  •   支持新的平台
  今年年初,PhoneGap就已经支持iOS6 (iOS7现在已经支持!), Windows Phone 8以及BlackBerry 10。Firefox OS 和 Ubuntu也即将支持。
  •   新的API接口
  两个新的API–InAppBrowser (原先的ChildBrowser插件)以及Globalization(多语言) API.
  •   流线型的插件架构
  一个优化精简的Cordova意味着更快,更小的应用程序,可以更方便地进行定制。

  •   更好的工具:友好的编程界面
  我们统一了所有的原生平台CLI工具到一个通用的语法。现在你可以轻松的在 Android, iOS, BlackBerry 或者 Windows Phone 之前切换而不需要学习一门新的开发语言去创建项目,编译,记录,部署到模拟器。我们已经采取了平台级工具,并把它封装在一个主可执行文件的基础上—神奇的NodeJS,安装它的简单命令:

  npm install -g cordova

  如果你想通过远程调试和备份,建议使用Adobe PhoneGap,可以轻松地通过PhoneGap云平台建造。 PhoneGap的封装时向下兼容Cordova(这里可以把PhoneGap理解为Chrome,Cordova则是驱动它的webkit),所以你可以使用这两种工具并排。

  npm install -g phonegap

  注:这两种工具都正在开发中,还是开发版!
  
       支持新的平台
  移动发展很快,我们已经加入支持的iOS 6(iOS7运行),Windows Phone8和黑莓10。我们也很高兴地看到,火狐OS和Ubuntu手机也已经支持。

  新的API:InAppBrowser和用户群体全球化
  插件形式的PhoneGap浏览器目前转为核心支持为InAppBrowser(原名为ChildBrowser插件)。移动用户是全球性的,所以我们现在正式支持一个全球化的API执行特定的操作,根据用户的位置和时区来匹配。

  崭新的插件架构

  在3.0中,我们的目标之一是基础的本地硬件特性桥接技术的核心。所有其他的API是可选安装。这允许开发人员自由组合PhoneGap的一个版本,适合他们的项目需求,使我们能够独立的修改API。这将使升级和扩展更容易。用户的应用程序将会更小,更快。

  使用一个称为Plugman的工具来安装和移除插件。为了提高你测试Plugman的积极性,我们已经和核心分为17个模块。

  这意味着,目前庞大的社区开源插件将需要重构新工装,我们将帮助我们的社区那里后,我们发布3.x的版本。

  在未来,我们预计许多新的API从来自广泛的网络社区。想象一下,组成一个版本的PhoneGap支持火狐OS的API和Chrome的WebAPIs,这是现在可以实现的。

  现有项目和迁移路径

  我们理解并尊重,有庞大的社区和项目以PhoneGap 2.0为基础建成,我们将在很长的周期内继续支持2.x的分支。我们正在努力编写文档,以便尽可能减少迁移的复杂和痛苦。我们将与社区一道,努力看到插件生态系统迁移到新的规格和Plugman。这是非常重要的。

  我们自豪地看到PhoneGap发展为一个全球性的项目结构,独立的开发插件,现在允许开发人员自由地编译只有所需API的PhoneGap版本,并分发自己的原生插件。在此版本中,我们证明在任何手机操作系统上web可以是一流的平台,这离不开成千上万的开发人员在社区的支持。谢谢。


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