我试图TextView
在用户触摸它时更改Android 小部件的背景颜色.我已经为此创建了一个选择器,它存储在res/color/selector.xml
大致看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/semitransparent_white"
/>
<item
android:color="@color/transparent"
/>
</selector>
Run Code Online (Sandbox Code Playgroud)
在clickable
该属性TextView
就是true
那的利益,以备不时之需.
当我将此选择器分配给TextView
as时android:background="@color/selector"
,我在运行时遇到以下异常:
ERROR/AndroidRuntime(13130):引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#6:标记需要一个'drawable'属性或定义drawable的子标记
当我将属性更改为drawable时,它可以工作,但结果看起来完全错误,因为ID似乎被解释为图像引用而不是颜色引用(如"drawable"所示).
令我困惑的是,我可以直接设置颜色参考,例如"@ color/black"作为背景属性.这是按预期工作的.使用选择器不起作用.
我也可以使用选择器作为textColor
没有问题.
TextView
在Android中应用背景颜色选择器的正确方法是什么?
$ result = validateUploadedFile($ _ FILES);
if (!empty($result) && !empty($result['valid']) && $result['valid'])
{
// do sth
// I don't know why sometime this three checks will cause me problems
// In other words, even if $result['valid'] is TRUE, this scope will not be hit
}
Run Code Online (Sandbox Code Playgroud)
函数validateUploadedFile返回一个数组$ result ['valid'] == TRUE如果它通过.
这是一个问题,if语句检查得太多了吗?我可以简单地检查以下内容吗?我几乎没有PHP语言知识,也不知道这些检查是否必要.
if ( $result['valid'] )
{
// do sth
}
Run Code Online (Sandbox Code Playgroud)
谢谢
function validateUploadedFile($uploadedFile)
{
// Define file size limit
$result = array('valid' => FALSE, 'error_message' => null, 'error_code' => null); …
Run Code Online (Sandbox Code Playgroud) 我使用Windows安装程序安装了dmd(2.0?),并尝试编译以下程序:
module tcpechoserver;
import std.stdio;
const int MAXPENDING = 5;
int main(char[][] argv)
{
if(argv.length != 2){
writef("Usage: %s <port>", argv[0]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是我得到以下编译器错误:
Error: module stdio cannot read file 'std\stdio.d'
Run Code Online (Sandbox Code Playgroud)
是否有一些路径我必须指定才能使标准库工作?
使用Ctrl+ +,Ctrl+ -和Ctrl+ 0作为应用程序放大,缩小和恢复默认缩放(通常为100%)操作的快捷方式似乎很自然.现在,在Delphi中,我可以将Ctrl+ +和Ctrl+ 指定0为快捷方式.但前者要求使用键盘主要部分的加号; 不能使用数字键盘的加号.
但是,当我想将Ctrl+ 指定-为快捷方式时,会出现问题.它根本不起作用.如果我在IDE中指定"Ctrl + - ",则存储在ShortCut
属性中的值为16495
.如果我们ssCtrl
从中减去,我们得到111.人们会相信,解决方法是分配ShortCut := 45 + ssCtrl
,或者等同于ShortCut := Menus.ShortCut(45, [ssCtrl])
,因为ord('-') = 45
.但这不起作用.
但是,我找到了一个有效的解决方案:ShortCut := 189 + ssCtrl
.我选择189,因为这是我按下" - "键并听取KeyDown
事件时收到的数字.
那么,为什么我对此不满意?好吧,我担心常数189只对瑞典键盘有效.我试图阅读这个,并且,像往常一样,MSDN文档相当清楚,但是,谁知道Delphi如何处理事情.
我有一个必须针对某些事情运行的进程,并且不适合在用户端运行(处理时间超过15秒)所以我考虑使用cron作业但是再次,这也不合适,因为它会创建回来的日志.我已经缩小了我的选择,要么运行一个监视mysql更改的无限进程,要么在检测到更改时配置mysql来触发脚本,但后者不是我想要进入的东西,除非它是我唯一的选择,这让我失望"无尽的"监控选项.
我正在考虑使用PHP的那种东西是:
while (true) {
$db->query('SELECT * FROM database');
while($row = $db->fetch_assoc()){
// do the stuff here
}
sleep(5);
}
Run Code Online (Sandbox Code Playgroud)
然后通过命令行运行它.现在这在理论上是合理的,但实际上它并没有像我希望的那样好,使用的资源超出了我的预期(但不是超出我的范围,只是不是我的最佳目标).所以我的问题如下:
PHP是错误的语言吗?PHP是我的工作,但我知道有时候这是错误的选择,我想也许这是.如果是,我应该使用什么语言?
有没有更好的方法,我没有考虑过,这不是我列出的任何想法?
如果PHP是正确的选项,我如何优化我发布的代码,是否有一种方法比每次完成操作后休眠5秒更好?
提前致谢!我对任何想法持开放态度,只要它们在那里不太远,我正在自由运行我自己的服务器,所以对我能做的事情没有理论上的限制.
我想用cURL 访问https://graph.facebook.com/19165649929?fields=name(显然它也可以用"http"访问)来获取文件的内容,更具体:我需要"名字"(它是json) .由于我的网络服务器上禁用了allow_url_fopen,因此我无法使用get_file_contents!所以我这样试了:
<?php
$page = 'http://graph.facebook.com/19165649929?fields=name';
$ch = curl_init();
//$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
//curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_URL, $page);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
Run Code Online (Sandbox Code Playgroud)
使用该代码,我得到一个空白页面!当我使用其他页面时,例如http://www.google.com,它就像一个魅力(我得到了页面的内容).我猜facebook正在检查一些我不知道的东西......它有什么用?如何使代码工作?谢谢!
这既是一个问题也是一个参考,我希望人们可以在此基础上进行构建,以便有类似问题的人可以重复使用它.
我们如何可靠地检测特定版本的C/C++/ObjC编译器?现在我知道Visual Studio的答案,并部分了解Xcode的答案.
现在,对于Visual Studio编译器,我们有_MSC_VER,它是用这些值定义的:
Version 1.0 800
Version 2.0 900
Version 2.x 900
Version 4.0 1000
Version 5.0 1100
Version 6.0 1200
Version 7.0 1300
Version 7.1 1310
Version 8.0 1400 (Visual Studio 2005)
Version 9.0 1500 (Visual Studio 2008)
Version 10.0 1600 (Visual Studio 2010)
Version 11.0 1700 (Visual Studio 2012)
Run Code Online (Sandbox Code Playgroud)
现在对于Xcode编译器,我们有这个定义:
__APPLE_CC__
Run Code Online (Sandbox Code Playgroud)
但我通过谷歌找到的唯一值(Mac文档似乎没有这些值)是:
Xcode 3.0 5465
Xcode 3.1 5470
Xcode 3.1 (GCC 4.2) 5553
Xcode 3.2.3 5664 (Got this value from my own compiler)
Run Code Online (Sandbox Code Playgroud)
任何人都可以填写此列表或提供完整列表的链接吗?也许我们也可以为其他编译器提供信息.
$('ul li a').each(function(index, element){$(element).attr("href", "#img"+index);});
Run Code Online (Sandbox Code Playgroud)
我希望我的列表项链接以href开头为"#img1",并从那里为每个项目计数.我的代码将从"#img0"开始,这对我想要完成的工作不起作用.
谢谢你的帮助.
在Visual Studio中有没有办法找到CSS类的用法?现在我必须搜索整个项目以查找所有用法.如果这个类被命名为像"title"这样的泛型,那么有时很难.我会得到所有这些与该类的使用无关的搜索结果.
出于某种原因,我不能这样做.它应该很简单.
我有一个带有a的JFrame BorderLayout
,其中包含一个JPanel
(SOUTH)和一个(CENTER)JPanel(itemPanel).
itemPanel应该包含在滚动窗格中.它的宽度= x,并且它的所有子节点共享它的长度,所以它基本上就像一个只有一列的表.
出于某种原因,我无法获得滚动窗格来显示滚动条(和滚动).在JFrame中:
setPreferredSize(dimension);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add("South",controlPanel);
JScrollPane scroll = new JScrollPane(itemPanel);
scroll.setBorder(null);
getContentPane().add("Center",scroll);
super.pack();
setVisible(true);
Run Code Online (Sandbox Code Playgroud)
初始化并向itemPanel添加一些虚拟面板:
itemPanel = new ItemPanel(); // A JPanel with a flowlayout
itemPanel.setPreferredSize(new Dimension(dimension.width,0));
for(int i = 0; i < 20; i++){
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(0,50));
p.setBackground(i%2 == 0 ? Color.GREEN : Color.YELLOW);
itemPanel.add(p);
}
Run Code Online (Sandbox Code Playgroud)
如果省略itemPanel.setPreferredSize(new Dimension(dimension.width,0));
滚动窗格显示水平滚动条,但由于flowlayout没有要跟随的宽度,它只显示一行中的组件.