只是浏览PHP编码标准的最新版本,有些东西引起了我的注意:
http://svn.php.net/viewvc/php/php-src/trunk/CODING_STANDARDS?revision=296679&view=markup
编码标准#4声明"在编写处理字符串的函数时,请务必记住PHP保存每个字符串的长度属性,并且不应该使用strlen()计算..."
我总是使用strlen,也许它已经晚了,但是如何在PHP中访问字符串的内置长度属性?
我有一个for循环循环ArrayList.
如果for循环中满足条件:
ArrayListArrayList局部变量的大小我们刚刚删除了最后一个元素的情况ArrayList:
i = (i > 0) ? i-- : i;
Run Code Online (Sandbox Code Playgroud)
我的问题是,当i> 0时,上面并没有减少i.我已经无数次地使用了三元运算符,但从未见过这种行为.我已经测试过我确实> 0并且正在调用i--部分.它只是没有减少i的价值.删除0值检查并简单运行i--;确实减少了我的预期.
编辑2:好的,有人编辑了我的上一次编辑,我提到我在这种情况下特别不使用ListIterator,因为循环本身的性能敏感性,是Android代码的关键部分.
我有一个包含表格数据的表单,每行都有一个具有相同名称的复选框,以便它作为数组通过POST传递给PHP页面.一切正常,但我有一个问题,关于什么时候没有选择页面上的项目 - 这是一个特殊情况,我需要以特定的方式处理,但我想弄清楚如何确定最佳方式判断这种情况发生的时间,就像$_POST数组完全是空的一样.
有哪些策略可以帮助确定何时将一组空数据发布到PHP中的页面?
我有一个扩展View的自定义视图.它显示绘制的形状,并允许用户通过onDraw将触摸事件绘制到视图中来添加到这些绘图.
我启用了ScaleGestureDetector,以便用户可以放大特定部分并进行绘制,但是当我使用单点触摸绘制时,他们无法使用手指在放大的视图中平移.
我已经尝试为View启用滚动条,当它们被放大时,滚动条会显示并且可以被用户用来平移...但我根本无法显示滚动条.
本质上,我正在做的是当用户放大时触发awakenScrollBars()我的ScaleListener方法中的View 方法.我通过XML和编程方式启用了滚动条,但是我无法触发滚动条可见.这是我的XML:onScale()invalidate()onCreate()
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.package.name.Canvas
android:id="@+id/canvas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:scrollbars="horizontal|vertical" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的onCreate():
// set scrollbars
setHorizontalScrollBarEnabled(true);
setVerticalScrollBarEnabled(true);
Run Code Online (Sandbox Code Playgroud)
在onDraw有,我可以确认的是,滚动条通过启用isHorizontalScrollBarEnabled()和isVerticalScrollBarEnabled(),并awakenScrollBars()在onScale()返回true,但滚动条只是不可见.
有关如何进行的任何建议?在ScrollView布局中包含自定义视图似乎不是一个选项,因为它只支持垂直滚动.
谢谢,
保罗
我有一个基于内置Android主题Theme.Dialog的'对话'活动:
<style name="Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowTitleStyle">@android:style/DialogWindowTitle</item>
<item name="android:windowBackground">@android:drawable/panel_background</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="textAppearance">@android:style/TextAppearance</item>
<item name="textAppearanceInverse">@android:style/TextAppearance.Inverse</item>
<item name="textColorPrimary">@android:color/primary_text_dark</item>
<item name="textColorSecondary">@android:color/secondary_text_dark</item>
<item name="textColorTertiary">@android:color/tertiary_text_dark</item>
<item name="textColorPrimaryInverse">@android:color/primary_text_light</item>
<item name="textColorSecondaryInverse">@android:color/secondary_text_light</item>
<item name="textColorTertiaryInverse">@android:color/tertiary_text_light</item>
<item name="textColorPrimaryDisableOnly">@android:color/primary_text_dark_disable_only</item>
<item name="textColorPrimaryInverseDisableOnly">@android:color/primary_text_light_disable_only</item>
<item name="textColorPrimaryNoDisable">@android:color/primary_text_dark_nodisable</item>
<item name="textColorSecondaryNoDisable">@android:color/secondary_text_dark_nodisable</item>
<item name="textColorPrimaryInverseNoDisable">@android:color/primary_text_light_nodisable</item>
<item name="textColorSecondaryInverseNoDisable">@android:color/secondary_text_light_nodisable</item>
<item name="textColorHint">@android:color/hint_foreground_dark</item>
<item name="textColorHintInverse">@android:color/hint_foreground_light</item>
<item name="textColorSearchUrl">@android:color/search_url_text</item>
<item name="textAppearanceLarge">@android:style/TextAppearance.Large</item>
<item name="textAppearanceMedium">@android:style/TextAppearance.Medium</item>
<item name="textAppearanceSmall">@android:style/TextAppearance.Small</item>
<item name="textAppearanceLargeInverse">@android:style/TextAppearance.Large.Inverse</item>
<item name="textAppearanceMediumInverse">@android:style/TextAppearance.Medium.Inverse</item>
<item name="textAppearanceSmallInverse">@android:style/TextAppearance.Small.Inverse</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我的Activity布局,我有一个EditText,一个Button和一个不可见的TextView,用于根据EditText内容的有效性向用户显示消息:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:paddingBottom="6dp">
<TextView …Run Code Online (Sandbox Code Playgroud) 我有一个EditText我试图设置一个非常长的、不间断的文本值(一个 URL),但即使使用以下 XML 声明,文本也会中断到第二行。
<EditText
android:id="@+id/address"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:maxLines="1"
android:hint="Enter URL"
android:text="http://www.example.com/news/2010-07-15/this-is-the-story-title-here.html">
</EditText>
Run Code Online (Sandbox Code Playgroud)
我在这里尝试了解决方案(添加android:ellipsize="end"),但没有任何区别。将文本的长度减少到不超过EditText工作长度……但这对于 URL 来说是现实的EditText。
有什么建议?
谢谢,
保罗