如何覆盖布局中的视图方法?

时间:2015-01-27 16:21:20

标签: java android view override

我想知道如何在我的代码中扩展我的布局中的View类。 我看过不同的例子,例如:

listView = new ListView(this){
   //Override some methods here
 }

现在如果我的布局中已经有ListView,我还想覆盖一些东西。我可以从布局中引用ListView的唯一方法是:

listView = (ListView)findViewById(R.id.mylistView);

因此,从此示例中,如何覆盖列表视图的方法。 请我只是一个普通的android程序员。请赐教。

1 个答案:

答案 0 :(得分:4)

您必须以编程方式构建布局(在大多数情况下这是繁琐且烦人的),或者在命名类中继承ListView并将其添加到布局中。这是第二个选项的样子:

public class MyListView extends ListView {

    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    // override other methods here
}
在布局文件中

,使用

<com.your.package.MyListView
    android:layout_width="..."
    android:layout_width="..."
    ... />