当前位置:  编程技术>移动开发
本页文章导读:
    ▪经过ActionBar设置Tabs        通过ActionBar设置Tabs 在网上竟然很少这个完整的例子, 我这里做一个例子让大家分享一下MainActivity.javapackage com.example.actionbarmenu; import android.app.ActionBar; import android.app.ActionBar.Tab; import androi.........
    ▪ phonegap在xcode编译和封装遇到的有关问题集        phonegap在xcode编译和封装遇到的问题集第一次用phonegap封装ios app 1. 用sencha 代码替代了phonegap生成的www文件夹文件,编译无法通过 解决: 不能用sencha完全替代phonegap的代码,需要在index.html中加.........
    ▪ 【持续集成】Mac下使用Jenkins持续集成报错Can’t connect to window server – not enough permissions       【持续集成】Mac上使用Jenkins持续集成报错Can’t connect to window server – not enough permissions. 错误提示: Build step ‘Execute shell’ marked build as failure 有了以上的分析,也就比较明确了:修改Jenkins.........

[1]经过ActionBar设置Tabs
    来源: 互联网  发布时间: 2014-02-18
通过ActionBar设置Tabs
在网上竟然很少这个完整的例子, 我这里做一个例子让大家分享一下

MainActivity.java
package com.example.actionbarmenu;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;

public class MainActivity extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		final ActionBar ab = getActionBar();
		// set defaults for logo & home up  
		ab.setDisplayHomeAsUpEnabled(false);  
        ab.setDisplayUseLogoEnabled(false);
		// 设置AcitonBar的操作模型
		ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        // 将Activity的头部去掉
		ab.setDisplayShowTitleEnabled(false);
        ab.addTab(ab.newTab().setText("Tab-A").setTabListener(new TabLister(new FragmentA())));   
        ab.addTab(ab.newTab().setText("Tab-B").setTabListener(new TabLister(new FragmentB()))); 
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	
	private class TabLister implements TabListener{
		private Fragment fragment;
		TabLister(Fragment fragment){
			this.fragment = fragment;
		}
		
		@Override
		public void onTabReselected(Tab tab, FragmentTransaction ft) {
			//ft.add(R.id.context, fragment);
		}

		@Override
		public void onTabSelected(Tab tab, FragmentTransaction ft) {
			ft.add(R.id.context, fragment);
		}

		@Override
		public void onTabUnselected(Tab tab, FragmentTransaction ft) {
			ft.remove(fragment);
		}
		
	}
	private class FragmentA extends Fragment{
		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			// TODO Auto-generated method stub
			return inflater.inflate(R.layout.activity_main_fragment_a, container, false);
		}
	}
	private class FragmentB extends Fragment{
		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			// TODO Auto-generated method stub
			return inflater.inflate(R.layout.activity_main_fragment_b, container, false);
		}
	}
}



activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <FrameLayout
        android:id="@+id/context"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true">
    </FrameLayout>

</RelativeLayout>


activity_main_fragment_a.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:id="@+id/fragmentA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

		<TextView
		    android:layout_width="wrap_content"
		    android:layout_height="wrap_content"
		    android:text="1111111" />

	</FrameLayout>
</LinearLayout>


activity_main_fragment_b.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:id="@+id/fragmentA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

		<TextView
		    android:layout_width="wrap_content"
		    android:layout_height="wrap_content"
		    android:text="2222222" />

	</FrameLayout>
</LinearLayout>



    
[2] phonegap在xcode编译和封装遇到的有关问题集
    来源: 互联网  发布时间: 2014-02-18
phonegap在xcode编译和封装遇到的问题集

第一次用phonegap封装ios app

1. 用sencha 代码替代了phonegap生成的www文件夹文件,编译无法通过

解决: 不能用sencha完全替代phonegap的代码,需要在index.html中加入

 <script type="text/javascript" src="/blog_article/cordova-2.5.0.js"></script>
        <script type="text/javascript" src="/blog_article/js/index.js"></script>
        <script type="text/javascript">
            app.initialize();
            </script> 


2. 在xcode中需要导入证书,然后achieve build

具体参看http://blog.csdn.net/zltianhen/article/details/6946848


3. 发布成为ipa,发现没有上文说到的share按钮

解决:原来是Distribute...-->save for enterprise or ad-hoc deployment
就可以达到原来share按钮的效果...


    
[3] 【持续集成】Mac下使用Jenkins持续集成报错Can’t connect to window server – not enough permissions
    来源: 互联网  发布时间: 2014-02-18
【持续集成】Mac上使用Jenkins持续集成报错Can’t connect to window server – not enough permissions.
错误提示:

 <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.

Fatal Internal error: java.lang.InternalError: Can’t connect to window server – not enough permissions.

Build step ‘Execute shell’ marked build as failure

Finished: FAILURE

分析原因:

因为是在signing那步出现的问题,结合“Can’t connect to window server”这句提示,推断是因为Jenkins默认以daemon用户身份运行,而daemon的权限限制还是蛮多的,像前台窗口这样的访问权限很可能是没有的,故而导致以上问题。

解决办法:

有了以上的分析,也就比较明确了:修改Jenkins配置,使其以普通用户身份运行。

依次运行下面的命令:

1 #停止Jenkins
2 $ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
3 # 修改group 和user
4 $ sudo vim +1 +/daemon +'s/daemon/staff/' +/daemon +'s/daemon/bixiaopeng' +wq org.jenkins-ci.plist
5  
6 $ sudo chown -R bixiaopeng:staff /Users/Shared/Jenkins/
7  
8 # 开始Jenkins
9 $ sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

注:更好的实践是新建一个叫做jenkins的user和对应的group,以其运行Jenkins。自己当前用户的用户名可以通过运行’id’命令查看,替换掉上面示例命令中的bixiaopeng即可。

ok, 刷新浏览器查看效果

username修改失败解决

如果还是有错,可能是user没有修改成功,那我们去看一下:
#1.查看Usr

#2.打开文件,查看usr

1 bixiaopeng@bixiaopengtekiMacBook-Pro LaunchDaemons$ open org.jenkins-ci.plist

 #3.如果username 不是你的用户名,就到此文件夹下面打开org.jenkins-ci.plist文件

#4.修改成功后会要求你root权限,输入后修改成功

本文链接:【持续集成】Mac上使用Jenkins持续集成报错Can't connect to window server - not enough permissions.

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:WirelessQA,谢谢!^^





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