public View (Context context)是在java代码创建视图的时候被调用,如果是从xml填充的视图,就不会调用这个
public View (Context context, AttributeSet attrs)这个是在xml创建但是没有指定style的时候被调用
public View (Context context, AttributeSet attrs, int defStyle)
所以在有两个参数的构造函数内初始化,因为在mainactivity.xml里其是通过xml填充的
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > <com.example.personalview.MyButton android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/mybtn" android:background="#00ffdd" /> </LinearLayout>
public class MyButton extends LinearLayout { ImageView image; TextView text; public MyButton(Context context) { super(context); } public MyButton(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.mybutton, this); image=(ImageView) findViewById(R.id.image); text=(TextView)findViewById(R.id.text); } public void setImage(int res) { image.setImageResource(res); } public void setText(String str) { text.setText(str); } }
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦