我有以下课程(包含在另一个课程中)
class RecordButton extends Button {
boolean mStartRecording = true;
OnClickListener clicker = new OnClickListener() {
public void onClick(View v) {
onRecord(mStartRecording);
if (mStartRecording) {
setText("Stop recording");
} else {
setText("Start recording");
}
mStartRecording = !mStartRecording;
}
};
public RecordButton(Context ctx) {
super(ctx);
setText("Start recording");
setOnClickListener(clicker);
}
}
使用以下代码显示按钮:
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
LinearLayout ll = new LinearLayout(this);
mRecordButton = new RecordButton(this);
ll.addView(mRecordButton,
new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
0));
setContentView(ll);
}
如何将Button布局定义为.xml文件而不是在java代码中执行?
我试过了:
<AudioRecordTest.test.RecordButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button"
android:id="@+id/record" />
但它不起作用......
非常感谢,
勒夫
答案 0 :(得分:2)
我理解“(包含在另一个班级中)”因为你有内部课程 RecordButton
。
假设你的包是AudioRecordTest.test
(这是一个非常糟糕的名字选择)而你的RecordButton类是AudioRecord.class的内部类,你需要使用:
<view class="AudioRecordTest.test.AudioRecord$RecordButton"
使用$
符号分隔内部类。您需要在引号内写限定名称。另外,请确保创建类public static,否则它将不可见。
BTW:你有什么特别的原因把它作为一个内部类创建而不是分开吗?