当前位置:  编程技术>移动开发
本页文章导读:
    ▪Only the original thread that created a view hierarchy can touch its views        Only the original thread that created a view hierarchy can touch its views. 有时在更新UI时,会报这个错:Only the original thread that created a view hierarchy can touch its views. 在修改UI时需要自己添加一个新的线程,不.........
    ▪ Activity其间的参数传递        Activity之间的参数传递 Activity之间的参数传递     假设有2个Activity,分别为 ActivityA和 ActivityB, ActivityA负责调用 ActivityB。   (一)ActivityA传递参数给 ActivityB   ActivityA类的代码: Bundle bundl.........
    ▪ CorePlot 装配       CorePlot 安装 一 第一种安装方法: 1.从http://code.google.com/p/core-plot/downloads/list下载CorePlotInstaller_xxx.zip, 下载后解压并安装,  会将SDK默认安装在/Library/SDKs/CorePlotSDK/目录下.   2. 安装后, 在/Library/SDK.........

[1]Only the original thread that created a view hierarchy can touch its views
    来源: 互联网  发布时间: 2014-02-18
Only the original thread that created a view hierarchy can touch its views.

有时在更新UI时,会报这个错:Only the original thread that created a view hierarchy can touch its views.

在修改UI时需要自己添加一个新的线程,不然的话会阻塞UI主线程,所以只需要我们把代码放到我们自己添加的线程中就可以了,但这里需要注意的是,需要把代码放到我们所创建的线程Hander中,别且Hander是被抛出的。不然的话有可能还会报同样的错误。但是我不知道在线程中创建的Hander和被发送出的Hander有什么区别?

 

 

还有在平时使用时,会忽略一个重要的问题就是。Hander必须在主线程中生成,否侧还是会报同样的错误!

在非本Activity中使用Hander时,一定要注意,我们所引用的Hander对像是否是在Activity中创建生成的,如果不是的话。还会报同样的错误。


    
[2] Activity其间的参数传递
    来源: 互联网  发布时间: 2014-02-18
Activity之间的参数传递

Activity之间的参数传递

 

 

假设有2个Activity,分别为 ActivityA和 ActivityB, ActivityA负责调用 ActivityB。

 

(一)ActivityA传递参数给 ActivityB

 

ActivityA类的代码:

Bundle bundle = new Bundle();
bundle.putInt("id", 120);//要传递的参数,根据实际要求设置
Intent intent = new Intent(this,ActivityB.class);
intent.putExtras(bundle);

//这里用startActivityForResult,表明还需要从ActivityB接收返回参数
//其中参数 3 :自己设置的参数,表示调用ActivityB行为的编号,在接收返回参数时候需要使用
startActivityForResult(intent, 3);

 

 

(二)ActivityB传递参数给 ActivityA

 

ActivityB的代码:

 

//定义返回参数
Intent intent = new Intent();
intent.putExtra("result_value", user.getId().intValue());
//设置返回值
//其中参数 100:自己定义的,表示返回编号
//(不同情况可以有不同的返回编号,让调用者可以根据不同的返回编号进行不同的处理)
setResult(100, intent);
//执行finish后,即关闭当前ActivityB,且将上面设置的参数进行返回
finish();
 

ActivityA的中用于接收返回参数的代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	int resultValue = 0;
	//requestCode:对应ActivitA中startActivityForResult(intent, 3);中的3
	switch(requestCode){
	case 3:
		//resultCode:对应ActivitB中setResult(100, intent);中的100
		switch(resultCode){
		case 100:
			resultValue = data.getIntExtra("result_value", -1);
			Toast.makeText(this, "返回值["+resultValue+"]", Toast.LENGTH_LONG).show();
			break;
		default:
			Toast.makeText(this, "错误返回值["+resultCode+"]", Toast.LENGTH_LONG).show();
		}
		break;
	default:
		Toast.makeText(this, "错误请求值["+requestCode+"]", Toast.LENGTH_LONG).show();
	}
}

 

 

 

 


    
[3] CorePlot 装配
    来源: 互联网  发布时间: 2014-02-18
CorePlot 安装

一 第一种安装方法:

1.从http://code.google.com/p/core-plot/downloads/list下载CorePlotInstaller_xxx.zip, 下载后解压并安装,  会将SDK默认安装在/Library/SDKs/CorePlotSDK/目录下.

 

2. 安装后, 在/Library/SDKs/CorePlotSDK/下有两个文件夹iphoneos.sdk和iphonesimulator.sdk, 可见一个是用于真机, 另外一个是用于模拟器. 现在我们用lipo命令将两个静态库合并: 

 打开命令行 Terminal.app 输入:

 lipo -create

 然后依次把两个.a文件拖到终端窗口, 命令行会变成这样:

 lipo -create /Library/SDKs/CorePlotSDK/iphoneos.sdk/usr/lib/libCorePlot.a    /Library/SDKs/CorePlotSDK/iphonesimulator.sdk/usr/lib/libCorePlot.a

然后接着输入 -output 目标文件路径,如:

-output /Users/keesuper/Test/Core_Plot_Test/coreplot/lib/libCorePlotAll.a

最后现在这样一条命令:

lipo -create /Library/SDKs/CorePlotSDK/iphoneos.sdk/usr/lib/libCorePlot.a  /Library/SDKs/CorePlotSDK/iphonesimulator.sdk/usr/lib/libCorePlot.a -output /Users/keesuper/Test/Core_Plot_Test/coreplot/lib/libCorePlotAll.a

好了,回车,这样就会生成通用的静态库.

3. 将

/Library/SDKs/CorePlotSDK/iphoneos.sdk/usr/下的include目录复制到/Users/keesuper/Test/Core_Plot_Test/coreplot/目录下.

 

 

4. Xcode->Project->Edit Project Settings,打开你的工程配置,点击Bulids标签, 将Configuration设置成All Configuration, 在: Header Search Paths里添加"./coreplot/include"; Library Search  Paths里添加"./coreplot/lib". 在other link flags里添加"-ObjC -all_load -lCorePlotAll"

 

 

 

二 第二种安装方法:

1. 下载并安装Mercurial(很简单,在http://www.selenic.com/mercurial/wiki/ 有标准Mac安装包下载),再使用命令:

hg clone http://core-plot.googlecode.com/hg/ core-plot

即可把Core Plot项目源代码下载到指定目录core-plot下。

 



2. 将下载好了的源码复制到工程目录下, 

     Add->Existing Files…,把CorePlot-CocoaTouch.xcodeproj添加到新项目中

 

3. 选择Target “get info->General”,添加对项目CorePlot-CocoaTouch的依赖(引用),(点击Linked Library上的"+"号).

 

4.选择新项目的“get info->Build”,在“User Header Search Paths”中添加Core Plot头文件搜索路径,如:/Users/kmyhy/core-plot/framework。注意要选中“Recursive”小勾.

 

 


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