I have the following class (included into another class)
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);
}
}
The display of the button is made using the following code:
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);
}
How can I define the Button layout into the .xml file instead of doing it in the java code?
I have tried that:
<AudioRecordTest.test.RecordButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button"
android:id="@+id/record" />
But it is not working...
Many thanks,
Joachim
I understand "(included into another class)" as you have an inner class RecordButton
.
Assuming your package is AudioRecordTest.test
(which would be a very bad name choice) and your RecordButton class is an inner class of AudioRecord.class, you need to use:
<view class="AudioRecordTest.test.AudioRecord$RecordButton"
Use the $
sign to separate inner classes. You need to write the qualified name inside quotes. Also, make sure you create your class public static, or it won't be visible.
BTW: any particular reason you create it as an inner class instead of having it separate?
精彩评论