Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在MainActivity中实现抽象适配器类_Android - Fatal编程技术网

Android 在MainActivity中实现抽象适配器类

Android 在MainActivity中实现抽象适配器类,android,Android,我有一个抽象的MonthAdapter类 MonthAdapter.java 我想在MainActivity的gridview适配器上实现它,如下所示: mGridView.setAdapter(new MonthAdapter(this, param[1], param[2], metrics)); 如何实现这个抽象类,因为抽象类不能在MainActivity内部实例化,而且因为MainActivity已经扩展到Activity,所以主类也不能直接继承到抽象类。 谢谢您的回答。您可以创建一个

我有一个抽象的MonthAdapter类

MonthAdapter.java

我想在MainActivity的gridview适配器上实现它,如下所示:

mGridView.setAdapter(new MonthAdapter(this, param[1], param[2], metrics));
如何实现这个抽象类,因为抽象类不能在MainActivity内部实例化,而且因为MainActivity已经扩展到Activity,所以主类也不能直接继承到抽象类。
谢谢您的回答。

您可以创建一个扩展抽象类的类,例如:

mGridView.setAdapter(new MonthAdapter(this, param[1], param[2], metrics){
            @Override
            public void onDate(int[] date, int position, View item){
            }
);
public class MonthAdapterImpl extends MonthAdapter {

    public MonthAdapter(Context c, int month, int year, DisplayMetrics metrics) {
        super(c, month, year, metrics);
    }

    @Override
    protected abstract void onDate(int[] date, int position, View item) {
       // the code
    };
}
希望这有帮助

public class MonthAdapterImpl extends MonthAdapter {

    public MonthAdapter(Context c, int month, int year, DisplayMetrics metrics) {
        super(c, month, year, metrics);
    }

    @Override
    protected abstract void onDate(int[] date, int position, View item) {
       // the code
    };
}