これは非常に簡単なはずですが、15分ほど検索しても、まだ答えが得られません。
TextViewとボタンを組み合わせたカスタムAndroidビューに加えて、いくつかのカスタマイズされた動作/メソッドを作成したいと思います。たとえば、ボタンをクリックすると、TextViewが「Hello、world!」に変更されます。
Viewクラスを拡張し、XMLでレイアウトを設計してから、2つをリンクするために魔法をかける必要があることを私は知っています。魔法とは何か教えていただけますか?アクティビティでこれを行う方法は知っていますが、カスタムビューではできません。
編集済みわかりました。レイアウトで定義された子ビューでクラスを膨らませるには、インフレータ を使用する必要があることがわかりました。これが私が得たものです:
public class MyView extends View {
private TextView text;
private Button button;
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
View.inflate(context, R.layout.myview, null);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
text = (TextView) findViewById(R.id.text);
button = (Button) findViewById(R.id.button);
}
}
ただし、text
および子button
ビューはnullでした。何か案が?(XMLは非常に単純で、特別な編集は必要ありません。EclipseツールバーからTextViewとButtonを取得して、スローインするだけです。)