通过这个课程,我将一个布局作为一个新页面放在一个页面浏览器中。 这工作正常,但现在我想把一个监听器放在布局中的按钮,但我找不到它。
public class questionListView extends LinearLayout {
public questionListView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public questionListView(Context context) {
super(context);
init();
}
private void init() {
LayoutInflater factory = LayoutInflater.from(getContext());
View myView = factory.inflate(R.layout.view1,null);
LayoutParams params=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
myView.setLayoutParams(params);
addView(myView);
Button btAddPhoto = (Button) myView.findViewById(R.layout.btAddPhoto);
}
}
在R.layout中找不到btAddPhoto。
布局view1中的非控件是可访问的。
如何在添加为视图的布局中访问控件?
RG, 埃里克
答案 0 :(得分:2)
解决了....它是一个按钮,所以我应该使用R.id.btAddPhoto而不是R.layout
我现在觉得自己很蠢....
答案 1 :(得分:1)
您是否正在使用eclipse进行开发?有时候编辑不会得到它。因此,您可能必须删除/ gen文件夹中的R.java,然后再次编译它。当eclipse生成R.java时,它会找到你的R.layout.btAddPhoto id。
答案 2 :(得分:1)
如果您在布局文件夹中定义了btAddPhoto.xml,那么您的IDE无法正确重新生成R.java。清理项目并重建以解决此问题(Project - > Clean in Eclipse)