如何在不同的布局中获取id

时间:2010-11-18 02:41:54

标签: android android-layout

当我使用id "@+id/call"(布局single_item.xml)时,我在findVewById setcontextview(R.layout.main) {{1}}。应用崩溃。如何修复错误

5 个答案:

答案 0 :(得分:35)

如果要访问另一个布局(而非活动布局)中的视图,则可以对要使用的布局进行充气并以此方式访问它。

示例:

View inflatedView = getLayoutInflater().inflate(R.layout.other_layout, null);
TextView text = (TextView) inflatedView.findViewById(R.id.text_view);
text.setText("Hello!");

有关充气布局的更多信息,请访问here

答案 1 :(得分:0)

您正在尝试查找在layour R.layout.main中的R.layout.single_item中声明的View(R.id.call),所以我猜它会抛出一个空指针异常。

您应该在main.xml文件中声明“@ + id / call”元素,或者将上下文视图设置为R.layout.single_item

答案 2 :(得分:0)

从视图中获取id的简单方法是:

String id = getResources().getResourceEntryName(view.getId());

答案 3 :(得分:0)

如果要获取片段中的ID,请使用以下方法。 用这样的视图替换return语句。

 View view= inflater.inflate(R.layout.fragment_left, container, false);
 img=view.findViewById(R.id.image);
 return view;

在返回视图之前调用所有方法。

答案 4 :(得分:-2)

View parent = (View)view.getParent();
??? = (???)parent.findViewById(R.id.call);

试试这个。希望它有所帮助