public class MyListView extends ListView { /** * 如果在xml中创建并设置了style,就会调用三个参数的。 * * @param context * @param attrs * @param defStyle */ public MyListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } /** * 如果是在xml中创建这个控件并且没有指定style,会调用两个参数的 * * @param context * @param attrs */ public MyListView(Context context, AttributeSet attrs) { super(context, attrs); String[] ss = {"abc", "123", "qwert", "asdf"}; ArrayAdapter<String> aa = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, ss); setAdapter(aa); } /** * 在java代码中直接new一个自定义的 ListView,会调用一个参数的构造函数 */ public MyListView(Context context) { super(context); } }
布局文件:
<com.test.testlistview.MyListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/myListView" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/>