有两个二叉树T1和T2存储字符数据,允许重复.
如何判断T2是否是T1的子树?.
T1有数百万个节点,T2有数百个节点.
我创建了一个扩展View的类RoundIcon,该类包含setIconImage()方法:
public void setIconImage(int imageFromResources) {
iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources);
iconWidth = iconImage.getWidth();
iconHeight = iconImage.getHeight();
refreshDrawableState();
}
Run Code Online (Sandbox Code Playgroud)
并且有一个方法onDraw():
@Override
protected void onDraw(Canvas canvas) {
if(px == 0 || py == 0)
{
px = 50;
py = 50;
}
canvas.drawCircle(px, py, circleRadius, circlePaint);
canvas.save();
if(iconImage != null)
{
int cardinalX = px - iconWidth/2;
int cardinalY = py - iconHeight/2;
canvas.drawBitmap(iconImage, cardinalX, cardinalY, iconPaint);
}
canvas.restore();
}
Run Code Online (Sandbox Code Playgroud)
问题是每次从主活动调用方法setIconImage()时都不执行onDraw()函数,因此图标在用户界面中不会改变.
有没有人知道如何修改代码,以便每次调用方法setIconImage时重绘图像?
我主要使用Visual Studio 2008进行Web开发,自从我在工作PC上升级到IE8后,似乎就出现了一种恼人的行为:
当我为网站或Web应用程序项目设置启动页面,然后单击工具栏中的"启动而不调试"图标或使用键盘快捷键CTRL-F5时,Visual Studio继续启动IE8(我的默认Web浏览器) ,但两次这样做:
IE8打开的第一个新窗口有一个标签"Connecting ...",它会加载about:空白页面.然后,另一个新的IE8窗口打开,同时显示"正在连接..."选项卡,并加载我在项目中设置的起始页面.
这非常烦人.有没有人有任何想法可能导致这个以及如何解决它?
在有人建议之前,我已经通过将Firefox作为我的默认浏览器来解决这个问题了一段时间;-)但是,我想在IE8中使用Visual Studio的javascript调试功能,所以再次想要IE8作为我的默认值,现在.
使用Process Explorer,我可以看到两个iexplore.exe进程都是由同一个父进程Visual Studio 2008的devenv.exe启动的.
第一个iexplore.exe进程具有以下命令行:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" -noframemerging -debug about:blank
几秒钟后启动的第二个iexplore.exe进程具有以下命令行:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" -noframemerging -suspended -debug http://localhost/test/index.html
然后,我也尝试了Process Monitor.在日志中,我可以在"C:\ Program Files\Internet Explorer\IEXPLORE.EXE"上看到来自devenv.exe的两个不同的"Process Create"事件......相隔几秒钟.
有趣的是,如果我使用Visual Studio 2005(而不是2008)尝试完全相同的事情(无需调试启动),我只会看到使用命令行创建的单个进程:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" about:blank
在2005年,在视觉上看起来好像是:空白首先被加载,然后URL被相同的选项卡中的相同浏览器进程加载:空白,覆盖它.
另外一件事我注意到不同:在VS2005 Process Monitor日志中,它显示了很多文件"C:\ WINDOWS\system32\ieframe.dll"的读取,但VS2008 Process Monitor日志中没有显示相同的内容.(ieframe.dll包含与Internet Explorer相关的某些COM对象的类型库.)因此,VS2005启动和控制IE的方式可能与VS2008不同.
最后,这很奇怪:在VS2008中,如果我单击"Start Without Debugging",我会得到两个窗口.但是,如果在解决方案资源管理器中我右键单击我的网站项目或其中的任何HTML文件并选择"在浏览器中查看",我只得到单个窗口.为什么"开始不调试"和"在浏览器中查看"之间存在差异?
我正在尝试练习TDD.
我的理解是TDD应该是这样的
我遇到的问题是编写实现或进行重构时.我经常得出结论,我刚写的实现应该委托给另一个类.
在这一点上真正的TDD应该怎么做?
我很想知道其他人如何处理这些情况.
我写了一个所有者绘制的TabControl,但我们的项目也使用TabWorkspace了派生自TabControl.此刻,我有
public class OurTabControl : TabControl
{
// some code that overrides protected methods
}
public class OurTabWorkspace : TabWorkspace
{
// the same code
}
Run Code Online (Sandbox Code Playgroud)
我只希望共享代码出现在一个地方,所以我们不必保留两份副本.这可能在C#中,如果是这样,怎么样?
我有类似的东西:
<div style="width:100px;float:left">menu</div>
<div style="float:left">content</div>
Run Code Online (Sandbox Code Playgroud)
两个花车都是必需的.我希望内容div填充整个屏幕减去菜单的100px.如果我不使用浮动,div就会完全扩展.但是如何在设置浮点数时设置它?如果我使用......
style=width:100%
Run Code Online (Sandbox Code Playgroud)
然后内容div获取父级的大小,它是我也尝试过的主体或另一个div,因此它当然不适合菜单,然后显示如下.
我有一个csv文件,数据和一个HTML文件,模板.
我想要一个脚本,它将使用html文件作为模板,从csv文件为每条记录创建一个单独的html文件.
在Ruby中这是最好的方法吗?蟒蛇?我用这两种语言都可以使用这个工具/库吗?
我使用ruby和glade2在新版本的glade3中设计用户界面一段时间我可以使用gtkbuilder格式生成xml文件而不是libglade.
有什么例子吗?我搜索谷歌,但我没有运气!
我正在尝试修改我的一个Python文件中的sys.path,以便在模块搜索路径中有一些特定的库dirs(它可能不是最好的方式,但是......).如果我在sys.path的前面插入几个路径,我的脚本没有考虑将来导入的路径.如果我创建一个包含我需要的库的全新列表并将该列表分配给sys.path,则会考虑这些导入.这是正确的行为吗?我正在使用python 2.5.4.这可能是我的环境可能导致这种行为吗?
一些代码片段:如果我这样做
pathtoInsert1 = " .... " pathtoInsert2 = " .... " sys.path.insert(0, pathToInsert1) sys.path.insert(0, pathToInsert2)
pathList = [pathToInsert1, pathToInsert2] sys.path = pathList
pathtoInsert1 = " .... "
pathtoInsert2 = " .... "
sys.path.insert(0, pathToInsert1)
sys.path.insert(0, pathToInsert2)
有用.
谢谢
我目前正在与其他一位合作学生一起完成一个接近完成项目的合作项目.由于这个项目已经从合作社转移到合作社,所以一直采取不良做法,测试一直持续到最后.我已经决定在测试时编写单元测试来学习新东西.
但是,我正在开发一个3层,紧密耦合的应用程序,似乎无法以当前形式进行单元测试.我不想通过在一夜之间重构代码来摒弃其他合作学生而不了解任何这些概念.那么我应该采取什么步骤来慢慢将代码拉向单元可测性?我应该先实施工厂模式,让其他学生在继续前进之前熟悉它吗?
如果我的知识存在缺陷并且不存在任何问题,我表示歉意.我是新来的:)
vb.net asp.net unit-testing stored-procedures n-tier-architecture