找出android中按钮的父ID

时间:2013-02-26 11:12:27

标签: android android-linearlayout android-button

在我的应用程序中,我有一个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。感谢....

1 个答案:

答案 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