0

在我的应用程序中,我有一个线性布局及其子按钮。在按钮上触摸监听器后,我需要知道线性布局的 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。我怎样才能得到线性布局的 id。谢谢....

4

1 回答 1

1

尝试使用:

View v = ((View)view.getParent());
int id = v.getId();
Toast.makeText(getApplicationContext(), String.valueOf(id), Toast.LENGTH_SHORT).show();

这将以整数格式烘烤线性布局的 ID,它存储在R.java.

您当前的实现Toast.makeText()makeText(Context, int, int)方法签名相匹配,该方法签名旨在与R.string.*元素一起使用。但是,由于您向它传递了一个R.id.*需要字符串标识符的元素,因此它使用它来尝试在 strings.xml 中查找匹配的字符串。当它找不到一个时,它会抛出一个Resources$NotFoundException.

于 2013-02-26T11:16:17.367 回答