无法连接到添加视图中的按钮

时间:2012-11-08 19:38:59

标签: android android-layout android-widget

通过这个课程,我将一个布局作为一个新页面放在一个页面浏览器中。 这工作正常,但现在我想把一个监听器放在布局中的按钮,但我找不到它。

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, 埃里克

3 个答案:

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