在我的应用程序中,我有一个linearlayout及其子按钮。触摸按钮后,我需要知道linearlayout的id。这是我的代码
private final class MyTouchListener implements OnTouchListener
{
public boolean onTouch(View view, MotionEvent motionEvent)
{
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN)
{
View v = ((View)view.getParent());
int id = v.getId();
Toast.makeText(getApplicationContext(), id, Toast.LENGTH_SHORT).show();
我得到android.content.res.Resources $ NotFoundException。我怎么能得到linearlayout的id。感谢....
答案 0 :(得分:1)
尝试使用:
View v = ((View)view.getParent());
int id = v.getId();
Toast.makeText(getApplicationContext(), String.valueOf(id), Toast.LENGTH_SHORT).show();
这将以R.java
中存储的整数格式为您提供线性布局的ID。
您当前的实施方式是Toast.makeText()
匹配makeText(Context, int, int)方法签名,该签名旨在与R.string.*
元素一起使用。但是,因为你传递了一个R.id.*
元素,它需要一个字符串标识符,所以使用它来尝试在strings.xml中找到匹配的String。如果找不到,则会抛出Resources$NotFoundException
。