0

在这个类中,我将布局作为新页面放入浏览器中。这很好,但现在我想在布局中的按钮上放置一个监听器,但我找不到它。

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

4

3 回答 3

2

解决了它....它是一个按钮,所以我应该使用 R.id.btAddPhoto 而不是 R.layout

我现在觉得很傻......

于 2012-11-08T22:17:47.120 回答
1

你在用eclipse开发吗?有时编辑不明白。因此,您可能必须删除 /gen 文件夹中的 R.java 并再次编译它。当 Eclipse 生成 R.java 时,它会找到您的 R.layout.btAddPhoto id。

于 2012-11-08T19:49:12.543 回答
1

如果您在布局文件夹中定义了 btAddPhoto.xml,那么您的 IDE 没有正确地重新生成您的 R.java。清理您的项目并重建以解决此问题(项目 --> 在 Eclipse 中清理)

于 2012-11-08T20:00:29.123 回答