Android 如何使用以编程方式设置的id

Android 如何使用以编程方式设置的id,android,Android,我已经创建了一个表行并设置了它的ID。现在我想找到该行,以便在其中放入一个片段。那我怎么才能找到这一排呢?通常,在xml中设置Id时,我可以通过R.Id.tableRow1轻松找到行。但由于我是通过编程方式设置的,所以这不起作用。 这是我的代码: TableRow tr1 = new TableRow(myView.getContext()); tr1.setId(1); ChildFragmentIntro cfi = new ChildFragmentIntro();

我已经创建了一个表行并设置了它的ID。现在我想找到该行,以便在其中放入一个片段。那我怎么才能找到这一排呢?通常,在xml中设置Id时,我可以通过R.Id.tableRow1轻松找到行。但由于我是通过编程方式设置的,所以这不起作用。 这是我的代码:

    TableRow tr1 = new TableRow(myView.getContext());
    tr1.setId(1);
    ChildFragmentIntro cfi = new ChildFragmentIntro();
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.add(tr1.getId(), cfi); //This is where it goes wrong, tr1.getId()
    transaction.commit();
Im i以错误的方式设置id,或者tr1.getId()是检索id的错误方法?如果我在XML中这样做,即在布局中创建一个表行,将其id设置为通常的@+id/xxx,并使用transaction.add(R.id.xxx,cfi);比它好用。但是现在我想用编程的方式来实现它。

您可以使用View.setId()为新生成的视图设置一个ID。在API 17+上,还可以使用View.generateView()生成唯一ID


还可以看到:

我设置id没有问题,只是无法检索它。似乎我必须添加一个名为ids.xml的资源文件,并将id放在那里。但是我希望有其他的方法。很抱歉,我没有完全阅读你的问题。R.id.someid只是一个int。您可以将生成的整数存储在任意位置(首选项、数据库、应用程序类),只需执行someLayout.findViewById(mySavedInteger);不,对不起;):我没有仔细阅读日志。上面的代码没有问题。错误在另一个片段中。休息时间:/。