Android:查找视图';通过提供其自己的id来设置其id
如果我有Android:查找视图';通过提供其自己的id来设置其id,android,Android,如果我有ImageButton myPicture。我可以说myPicture=(ImageButton)findviewbyd(myPicture.getId()) 还有什么我可以实现的吗?如果myPicture对象已经存在,为什么要重新创建它 是的,如果已在应用程序上下文中创建了myPicture对象,或者之前已在布局中引用了Id,则这将起作用 您不能将其用作第一次初始化,因为对象为null,您必须首先从布局中获取它 编辑 作为对上述评论的回应,您可以使用XML文件创建模板布局,然后在Jav
ImageButton myPicture
。我可以说myPicture=(ImageButton)findviewbyd(myPicture.getId())代码>
还有什么我可以实现的吗?如果myPicture
对象已经存在,为什么要重新创建它
是的,如果已在应用程序上下文中创建了myPicture
对象,或者之前已在布局中引用了Id,则这将起作用
您不能将其用作第一次初始化,因为对象为null,您必须首先从布局中获取它
编辑
作为对上述评论的回应,您可以使用XML文件创建模板布局,然后在Java代码中,在循环中膨胀模板布局,而不是重复64次,添加所需信息。当然不能,因为右操作数中的myPicture
仍然为空,这可能会导致NullPointerException
,但您没有捕获任何ImageButton
视图
您可以通过编程方式创建一个
ImageButton imageButton=new ImageButton(this);
或者在布局XML文件上绘制它,然后使用findViewById(R.id.imageButtonId)
这实际上会创建一个ImageButton
的视图,然后您可以选择它,但按您的方式,还没有视图可供选择为什么。。。?如果myPicture
存在,并且有一个有效的Id,为什么要重新创建它?没有,但可以在R.java文件中找到myPicture的int值,并在findviewbyd中使用(int值)@MaulikSheth是的,问题是我有64个图像按钮,我不想写64行代码。必须有一种方法,我可以找到他们所有的意见使用一个forloop@Clay你不能,因为你需要先初始化它们。所以如果我的布局文件是R.layout.myLayout。如何获取其中的所有64个图像按钮。我需要写64行代码吗?我不能使用for循环?与其有64个图像按钮,不如在looooop中复制一个图像按钮。但是imageButton不同,它们有不同的id,即android:id=“@+id/cell01”您可以通过imageButton.setId(I+1)在for循环中更改id
但您应该知道,id
必须是积极的,但最好的方法是使用ListView
或GridView
您将使用ImageButton
创建XML布局,然后在ListView
中使用不断变化的适配器对其进行充气,该适配器将保存ImageButton
列表您可以更改图像按钮
有关列表视图的更多信息
请参阅