当前位置: 编程技术>移动开发
本页文章导读:
▪施用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来实现。 下面贴下代码。
大家都知道可以使用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界面
需要用到的权限
跳转到系统设置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]-->
开发团队执着于未来移动互联网的开发,过去的一年我们的主题是符合开发者的使用习惯。今年,这里有数以万计的新特性值得我们兴奋!
下面是新特性预览
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可以是一流的平台,这离不开成千上万的开发人员在社区的支持。谢谢。
下面是新特性预览
- 更实用的工具
- 支持新的平台
- 新的API接口
- 流线型的插件架构
- 更好的工具:友好的编程界面
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可以是一流的平台,这离不开成千上万的开发人员在社区的支持。谢谢。
最新技术文章: