×

selector elect to

selector(android中的selector文件怎样创建)

admin admin 发表于2022-09-06 02:46:23 浏览113 评论0

抢沙发发表评论

本文目录

android中的selector文件怎样创建


 Android中的Selector主要是用来改变控件的背景,可以设置控件不同状态下的背景,如按下,焦点,无焦点,被选中。。。等等

创建selecetor一般放在res的drawable目录下

右击drawable目录,new一个android xml file

填入文件名,选择selector

下面开始写一个按键的按下和正常状态下的背景

《?xml version=“1.0“ encoding=“utf-8“?》
《selector xmlns:android=“所以最好把默认的放到最后面


android中selector怎么用


Android中的Selector用来改变ListView和Button控件的默认背景。
其使用方法请参照如下步骤:
一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片
《?xml version=“1.0“ encoding=“utf-8“ ?》
《selector xmlns:android=“例如main.xml 文件,需要在《Button /》里加两项android:focusable=“true“ android:background=“@drawable/button_color“
-elect

selector是什么意思


1.选择器
选择器
Selector样式要套用的对象.
样式规则Rule样式设定的内容.
每个样式後要加.
如H2
2.选择符
CSS的定义是由三个部分构成选择符selector属性properties和属性的取值value
基本格式
3.寻线器
SEL
selector
选择装置寻线器转换开关.
Select
选择.
Selectivity收音机选择性.
Semi
4.选择装置
SEL
selector
选择装置寻线器转换开关.
Select
选择.
Selectivity收音机选择性.
Semi
5.转换开关
SEL
selector
选择装置寻线器转换开关.
Select
选择.
Selectivity收音机选择性.
Semi
6.波段开关
selectivity
选择性...selector
选择器,波段开关
Notebook
Selector
for
Airline
Adaptor
Discharge
Control
Desig
笔记本电脑转接器
Studies
on
AOTF
as
the
Wavelength
Selector
for
ETV
AA
声光可调滤光片作为电热原子吸收光谱仪波长选择器的研究
-to

jquery 的selector怎么用


selector:属性用于返回获取当前jQuery对象时传给jQuery(selector, context)函数的原始选择器(即selector参数)。换句话说,你通过什么选择器来获得的当前jQuery对象,当前jQuery对象的selector属性就返回什么。-elect

语法:jQueryObject.selector

返回值:selector属性的返回值是String类型,返回该jQuery对象的原始选择器。如果当前jQuery对象不是通过传入选择器字符串来获得的,那么将返回空字符串““。

实例说明:

《div id=“n1“》
    《div id=“n2“》
        《ul id=“n3“》
            《li id=“n4“》item1《/li》
            《li id=“n5“》item2《/li》
            《li id=“n6“》item3《/li》
        《/ul》
    《/div》  
《/div》
/*编写jquery代码:*/
var $li = $(“ul li“);
document.writeln( $li.selector ); // ul li
var $p = $(“#n1 p“);
// 虽然$p是一个空的jQuery对象,没有匹配到任何元素,但也包含了传入的选择器信息
document.writeln( $p.selector ); // #n1 p
var $ul = $(“#n1“).find(“ul“);
// jQuery根据我们的操作自动计算出相应的选择器
document.writeln( $ul.selector ); // #n1 ul
var div_n2 = document.getElementById(“n2“);
var $n2 = $(div_n2); // 以DOM元素的方式获取jQuery对象
document.writeln( $n2.selector ); // (空字符串)
/*********代码运行结果***********/
ul li
#n1 p
#n1 ul
-to

java选择器(Selector)是用来干嘛的


呵呵,我来告诉你吧,至于例子代码在我的回答记录中有。你自己翻来去看,是用nio给一个学生写的BBS聊天室。
在用nio通讯的过程我用以下情景给你模拟:
1. 学校(ServerSocketChannel)
2。 学校教务处(Selector)
3。 老师 (ServerSocket )
4。 学生 (SocketChannel)
5。 员工号/学生号(SelectionKey)
学校:相当于我们的网络应用程序,一旦学校启动,学校就不停止,不断运行,直到学期结束;
要启动学校就要:
ServerSocketChannel ssc= ServerSocketChannel.open();//新建NIO通道
ssc.configureBlocking( false );//使通道为非阻塞
老师: 相当于服务端的Socket,一个老师对应多个学生,多个学生向老师请教,老师会一一做出回答。而学校要正常运营当然当不了老师,所以在开学之前,必须先聘请专业的老师来任教
ServerSocket ss = ssc.socket();//创建基于NIO通道的socket连接
//新建socket通道的端口
ss.bind(new InetSocketAddress(“127.0.0.1“,SERVERPORT));
学校教务处: 老师都有了,但是需要有部门对老师和学生做统一的管理, 如果你去一个学校找一个人,实在是找不到,你可以告诉教务处,那个人是学生还是老师,是老师的话员工编号老师姓名的多少,是学生的话学号和姓名是多少,教务处就会找到告诉你他在哪里。
//将NIO通道选绑定到择器,当然绑定后分配的主键为skey
SelectionKey skey = ssc.register( selector, SelectionKey.OP_ACCEPT );
ssc注册了选择器后,其下的老师ServerSocket就也入了员工册了。所以老师的编号就是skey
学生: 学校、老师、教务处都有了,现在就可以招生了!
如果有学生来报名:
while(true){//除非学期结束,否则一直等待学生
int num = selector.select();//获取通道内是否有选择器的关心事件, 意思是有多少学生报告
if(num《1){continue; }
Set selectedKeys = selector.selectedKeys();//获取通道内关心事件的集合 ,这里的集合就是老师和学生的编号集合,如果key是学生的,那就是老学生来问问题,如果key是老师的,那就是招生办的老师带着一个新生来注册
Iterator it = selectedKeys.iterator();
while (it.hasNext()) {//遍历每个key (学生key和老师key)
.......
}
.....
}
既然有学生来报告,那有两种可能,一种是招生老师带着新生来注册的,一种是老生来问问题的。
上面的while (it.hasNext()) 体可以这样写:
while (it.hasNext()) {//遍历每个事件
try{
SelectionKey key = (SelectionKey)it.next(); //先得到这个学生的编号key
//判断是新生报道还是老生问问题
if ((key.readyOps() & SelectionKey.OP_ACCEPT)
== SelectionKey.OP_ACCEPT) {
//这是招生老师的Key说明是新生注册,先找到招生老师,再由招生老师找到新生,就可以给新生注册学号了
ServerSocketChannel serverChanel = (ServerSocketChannel)key.channel(); //通过key把学校和老师找到了
//从serverSocketChannel中创建出与客户端的连接socketChannel 有了老师才有学生,不可能我教计算机的,来一个想学李小龙的都让他报名
SocketChannel sc = serverChanel.accept(); //学生报名成功
sc.configureBlocking( false );
// 把新连接注册到选择器,新生被接收后给注册个新学号
SelectionKey newKey = sc.register( selector,
SelectionKey.OP_READ ); //注册学号成功,并分配学生的权限
it.remove(); //新生注册任务完成了,呵呵
System.out.println( “Got connection from “+sc );
}else
//读客户端数据的事件,此时有客户端发数据过来,客户端事件 这是老学生来问问题了。
if((key.readyOps() & SelectionKey.OP_READ)== SelectionKey.OP_READ){
// 读取数据 ,接受学生的问题
SocketChannel sc = (SocketChannel)key.channel(); //通过学号知道是谁问的问题
//下面接受问题
int bytesEchoed = 0;
while((bytesEchoed = sc.read(echoBuffer))》 0){
System.out.println(“bytesEchoed:“+bytesEchoed);
}
echoBuffer.flip();
System.out.println(“limet:“+echoBuffer.limit());
byte content = new byte[echoBuffer.limit()];
echoBuffer.get(content);
String result=new String(content);
doPost(result,sc); //相应老师会去做回答的,细节自己去写吧
echoBuffer.clear();
it.remove(); //任务完成,记得上面也是一样,要remove掉,否则下一次又来一次任务,就死循环了
}
}catch(Exception e){}
}
}
补充你的补充:
ssc.register( selector, SelectionKey.OP_ACCEPT );
这个方法是把ssc注册绑定到选择器selector 这样下次你想找ssc或者判断一个对象是不是ssc就可以通过selector来查找,查找是通过判断ssc的key得到的。
至于第二个参数SelectionKey.OP_ACCEPT 你可以理解成ssc的key类型或者操作权限
如果 ssc是学校老师,那么绑定成功后 老师就拥有了OP_ACCEPT的权限或者说他的key类型是SelectionKey.OP_ACCEPT
Accept是接受的意思,这是不是很像socket编程里的 accept()方法呢? 是的,没错,我们正是通过这个参数给了老师招生和带学生来注册的权限。
而学生呢?
他拥有的权限为SelectionKey.OP_READ 表示有收发读取消息的权限,即问问题的权限,因此他不能帮别的学生注册。
所以你回到上面仔细看看while结构体里面做了判断如下:
if ((key.readyOps() & SelectionKey.OP_ACCEPT) == SelectionKey.OP_ACCEPT) {...} 很明显,拥有Accept权限的人只可能是老师,那老师有什么事会找教务处? 那肯定就是他是招生办的,招到一个学生来报名来注册了。
然后,马上给这个新连上来的客户端分配了一个key
SelectionKey newKey = sc.register( selector,
SelectionKey.OP_READ ); 看,这里只给他OP_READ,而不是Accept哦
另一个if
else
if((key.readyOps() & SelectionKey.OP_READ)== SelectionKey.OP_READ){
//很明显,这是这学生,因为所有带OP_READ的人都是前面由招生办老师带过来注册过的。
还有不明白吗?
-elect

css中常用的selector有哪些,举列说明


常用的也就一楼所说的那三种,id选择器,类选择器,标签选择器。
当然如果说常用,组合选择器也是比较常用的,但它不是特指的那一个,而是组合!
以上三种可以任何组合的。
还有一类不太常用,伪选择器,比如A:link之类,还有就是XX:first等等,都属于伪选择器的!
-to

AUDlO、SELECTOR这什么意思请高师解答谢


audio 形容词:声音的;成音频率的 名词:音频;音响设备
selector 英[sɪˈlektə(r)] 美[sɪˈlɛktɚ]
n. 选择者,选择器;
[例句]In this section, you add a selector to an existing application.
在本部分中,您将把选择器添加到现有应用程序中。
[其他] 复数:selectors
-elect

请教个performselector延时执行的问题问题


实际上是performSelector延时调用的问题,经查找资料,performSelector关于内存管理的执行原理是这样的执行 [self performSelector:@selector(method1:) withObject:self.tableLayer afterDelay:3]; 的时候,系统会将tableLayer的引用计数加1,执行完这个方法时,还会将tableLayer的引用计数减1,而在我的游戏里这个延时执行函数是被多次调用的,有时切换场景时延时函数已经被调用但还没有执行,这时tableLayer的引用计数没有减少到0,也就导致了切换场景dealloc方法没有被调用,出现了内存泄露。
所以最后我的解决办法就是取消那些还没有来得及执行的延时函数,代码很简单:
[NSObject cancelPreviousPerformRequestsWithTarget:self]
当然你也可以一个一个得这样用:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(method1:) object:nil]
加上了这个以后,切换场景也就很顺利地执行了dealloc方法,至此问题解决!

最后在找资料时也发现了,延时调用实现长按钮的实现思路,记录下来以备后用:
在touchBegan里面
[self performSelector:@selector(longPressMethod:) withObject:nil afterDelay:longPressTime]
然后在end 或cancel里做判断,如果时间不够长按的时间调用:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(longPressMethod:) object:nil]
取消began里的方法

最后最后总结:
performSelector是一个很有用的函数,跟它打过不少交道,经过血与泪的教训,总结一下它的使用如下:
使用前先检测一下,
SEL testSelector = @selector(test:);
if([tester respondsToSelector:testSelector])
{
//如果响应就执行
[tester test:@“invoke test method“];
}
使用后,如果有必要,需要显示的调用cancelPreviousPerformRequestsWithTarget:selector:object: ,否则有可能产生内存泄露,而且这种内存泄露很难发现,因为它并不违反任何规则,所以一定要注意!
-to

在OC 中,给对象发送一个消息,与 通过@selector 发送一个消息有什么区别


不知道你的基础如何? 我就简单说一点吧。
例如People类继承于NSObject, 它有一个eat方法。 你创建了一个对象People *p = [People new];
然后你可以使用[p eat]或者 [p perfomSelector:@selector(eat)]来。
两种到底有什么区别? 其实对于方法调用本身来说,都是调用eat方法,但是performSelector提供了一种间接性,它可以通过传入不同的selector来调用不同的方法。[p eat]对于编译器来说,内部应该会编译成[p performSelector:@selector(eat)]的方法,这个是我的猜想。 然后在运行时期,根据@selector(eat)得到的方法字符串SEL得到eat方法的实现代码的函数指针IMP, 然后调用以C语言的方式使用eatImp(p, @selector(eat);来调用eat方法。
实际上对于上面的两个区别,你可能会用到的是这种情况。
在头文件.h中你不声明eat,在外部使用People时候,你不能使用[p eat],但你可以使用performSelector的方式,这是由于编译器在[p eat]就根本不让你编译通过, performSelector是运行期的事情,编译器只会给出警告,不会阻拦你,会有更好的灵活性。
对于上面两个方法还有一点,performSelector相当于是一个控制中心,它可以接收selector来进行调用不同的方法。这相当于apple给我们一个自己统一处理方法的机会。例如我们需要做一个消息控制中心,根据不同的消息调用不同的方法,我可以写出这样的代码:
void processMethodByMsg:(NSString*)methodName
{
NSDictionary* methodDic = @{@“eat“: @selector(eat), @“drink“:@selector(drink), @“sleep“:@selector(sleep)};
[p performSelector:methodDic[methodName]];
}
通过一个dic就完成了字符串和方法的映射,methodName是由外部输入的消息名字,需要修改或者添加的时候,你仅仅需要修改dic词典就可以了,完成了代码的归一。
好了,啰啰嗦嗦十分钟了,希望能给你一些帮助。
-elect

关于performSelector调用和直接调用有什么不同


1. 有一点是肯定的, performSelector是运行时系统负责去找函数/方法的,在编译时候不做任何校验;但是直接调用肯定在编译是会校验。如果test2不存在,那么直接调用 在编译时候就能够发现(借助Xcode可以写完就发现),但是使用performSelector的话一定是在运行时候才能发现(此时程序崩溃)
Cocoa支持在运行时 向某个类添加方法(应该极少人用到, 即方法编译时不存在,但是运行时候存在,这时候必然需要使用performSelector去调用)
大概这也是为什么写delegate的时候,为保证程序健壮性,会使用如下函数检验
- (BOOL)respondsToSelector:(SEL)aSelector;
-to