Tôi cảm thấy như thể tôi đã từng biết làm thế nào để làm điều này, nhưng tôi hiện đang vẽ một khoảng trống. Tôi có một lớp mở rộng từ View (Card
) và tôi đã viết một bố cục cho nó trong XML. Những gì tôi muốn làm là đặt Chế độ xem của Card
làm Chế độ xem XML trong hàm tạo, vì vậy tôi có thể sử dụng các phương thức trong Card
để đặt TextView
và không có gì. Bất kỳ đề xuất? Mã bên dưới:Sử dụng bố cục XML làm chế độ xem cho lớp con Xem?
Card.java: (Tôi có View.inflate(context, R.layout.card_layout, null);
làm ví dụ về những gì tôi muốn làm, nhưng nó không hoạt động. Về cơ bản tôi muốn lớp đó là giao diện cho Chế độ xem và để làm rằng tôi cần phải bằng cách nào đó gán layout XML để View. tôi sử dụng một cái gì đó dọc theo dòng của setContentView(View view)
? không có phương pháp như vậy trong lớp View
, nhưng có cái gì giống như nó?)
public class Card extends View {
TextView tv;
public Card(Context context) {
super(context);
View.inflate(context, R.layout.card_layout, null);
tv = (TextView) findViewById(R.id.tv);
}
public Card(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
View.inflate(context, R.layout.card_layout, null);
tv = (TextView) findViewById(R.id.tv);
}
public Card(Context context, AttributeSet attrs) {
super(context, attrs);
View.inflate(context, R.layout.card_layout, null);
tv = (TextView) findViewById(R.id.tv);
}
public void setText(String text) {
tv.setText(text);
}
}
card_layout. xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="336dp"
android:layout_height="280dp"
android:layout_gravity="center"
android:background="@drawable/card_bg"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:textSize="24dp"
/>
</LinearLayout>
Tôi nghĩ về việc chỉ mở lớp 'LinearLayout' và sau đó nghĩ rằng đó là một ý tưởng ngớ ngẩn.Tôi đã thử nó sau khi nhìn thấy bình luận này và nó đã làm việc hoàn hảo! Cảm ơn nhiều! – roboguy12