Android 查看对象id
我在一个活动中有几个对象,我想在对它们执行任何操作之前检查它们的id。然而,我不确定如何进行,我尝试:Android 查看对象id,android,view,Android,View,我在一个活动中有几个对象,我想在对它们执行任何操作之前检查它们的id。然而,我不确定如何进行,我尝试: if (v.getId().contains("empty")){ 但这是一个错误,然后我尝试了 if (v.getId() == "[attr^=empty]"){ 这也是错误的。老实说,我知道这两个都没有使用正确的赋值等等,但我真的不知道如何检查id是否包含某个子字符串。。。。如果有人能帮忙,我将不胜感激 PS:v是一个视图对象v.getId()返回一个整数。为了在做某事之前检查id
if (v.getId().contains("empty")){
但这是一个错误,然后我尝试了
if (v.getId() == "[attr^=empty]"){
这也是错误的。老实说,我知道这两个都没有使用正确的赋值等等,但我真的不知道如何检查id是否包含某个子字符串。。。。如果有人能帮忙,我将不胜感激
PS:v是一个视图对象v.getId()
返回一个整数。为了在做某事之前检查id
,我建议如下:
switch (v.getId()){
case R.id.ViewElement1:
//do something here
break;
case R.id.ViewElement2:
//do something here
break;
case R.id.ViewElement3:
//do something here
break;
}
这段代码的作用是获取视图的Id,然后通过开关盒块对其进行比较。如果id取自v.getId()
,则执行case块中的代码。中断
很重要,否则,在下面的情况下执行的代码也将运行。你也可以为if-else这样做,如果它更适合你的风格
如果要以字符串形式获取id,可以尝试:
String ResourceIdAsString = v.getResources().getResourceName(v.getId());
然后您可以对字符串对象执行if contains操作。我不完全确定您想要实现什么。这里有一些关于
id
工作原理的概述
首先,您必须在xml
中创建id
所有视图,如:
<TextView
android:height="wrap_content"
android:weight="match_parent"
android:id="@+/myTextView" />
如果您有一些做同样事情的视图,您可以使用它们,如:
switch(view.getId()){
case R.id.myTextView1:
case R.id.myTextView2:
case R.id.myTextView3:
case R.id.myTextView4:
perfomeSomeAction();
break;
}
v.getId()
返回一个int。您无法将int
与字符串进行比较。是的,我看到了,但我对它的工作原理感到困惑。我的意思是,当您在xml文件中定义一个对象(例如ImageView)时,您给它一个id(例如:android:id=“@id/empty1”),当您在java/activity中使用视图对象时,您首先需要将其定义为视图对象(view emptySpot=findviewbyd(R.id.empty1))那么,如果不将某个id视为字符串,如何检查它以什么开头呢?我应该应用string.valueof()吗。。。这就是我目前正在做的,我有一个默认情况,我想对id以空开头的所有其他视图应用相同的操作,但我不知道如何只检查id的一部分,或者这是不可能的?idk你的答案与我的不同。你甚至忘记了中断代码>上一个代码块中的语句。
switch(view.getId()){
case R.id.myTextView1:
case R.id.myTextView2:
case R.id.myTextView3:
case R.id.myTextView4:
perfomeSomeAction();
break;
}