I am working on an Android application. I have a custom view and layout as follows:
<com.hello.view.card.inner.SimpleCardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/card_simple_linear_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/simple_label" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </com.hello.view.card.inner.SimpleCardView>
And this is the Java class:
public class SimpleCardView extends LinearLayout { protected SimpleCard card = null; protected TextView textView; public SimpleCardView(Context context) { super(context); init(context); } public SimpleCardView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public SimpleCardView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); } protected void init(Context context) { textView = (TextView)findViewById(R.id.simple_label); } public void setCard(SimpleCard card) { this.card = card; textView.setText(card.getMessage()); } }
And this is how I inflate the view (I tried both of the following calls):
SimpleCardView view = (SimpleCardView)inflater.inflate(R.layout.card_simple, null);
The problem I encountered when view.setCard (card) is called, I see that textView is null, although I expect it to be set in the init (..) method. Can someone tell me that it is not configured correctly? Thanks in advance.
source share