【发布时间】:2011-01-03 22:39:15
【问题描述】:
我正在尝试创建一个自定义 LinearLayout(在 Android 上),但在我的主 Activity 类中尝试使用它时,我不断收到编译器错误。扩展的 LinearLayout 需要构造函数传递给它的 Context,但我不知道从哪里获取该 Context。我看到的所有示例都显示了 this 指针从 Activity 的传递。我做错了什么?
编译器错误
MyApp.java:15: cannot find symbol
symbol: constructor BoardLayout(com.test.program.MyApp)
location: class com.test.program.BoardLayout
BoardLayout board = new BoardLayout(this);
BoardLayout.java
public class BoardLayout extends LinearLayout {
public void BoardLayout(Context context) {
// initialisation code
}
public BoardLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
}
MyApp.java
public class MyApp extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BoardLayout board = new BoardLayout(this); // Doesn't work!
setContentView(board);
}
}
解决方案:
看起来问题是两个问题。
- 构造函数没有 void 类型(我的粗心错误)。
- 必须调用“super(context)”作为构造函数中的第一条指令。
【问题讨论】:
-
你在导入你的 BoardLayout 类吗?
标签: java android android-layout