我有一个带有多个参数化构造函数的类。
class MyClass{
public MyClass(Context context) : this(context, VERTICAL)
{
}
public MyClass(Context context, int Orientation) : base(context)
{
init(context, Orientation);
}
public MyClass(Context context, Android.Util.IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)
{
//more code
}
// I have to make an object of this MyClass into MyDataSetObserver class.
public class MyDataSetObserver : DataSetObserver
{
MyClass mc;
public MyDataSetObserver(MyClass _mc)
{
mc= _mc;
}
public override void OnChanged()
{
mc.onDataChanged ();
}
public override void OnInvalidated()
{
mc.onDataChanged();
}
}
//DatasetObserver usage
public void setAdapter(Android.Widget.IAdapter myadapter, int initialPosition)
{
if (this.adapter != null)
{
this.adapter.UnregisterDataSetObserver (adapterDataObserver);
}
//Assert.assertNotNull ("adapter should not be null", adapter);
this.adapter = myadapter;
adapterDataCount = adapter.Count;
adapterDataObserver = new MyDataSetObserver (this);
this.adapter.RegisterDataSetObserver (adapterDataObserver);
if (adapterDataCount > 0) {
SetSelection (initialPosition);
}
}
}
但是这给了我mc的值为null ..
另外,我需要进行构造函数链接,这是正确的方法吗?
答案 0 :(得分:1)
adapterDataObserver = new MyDataSetObserver (this);
this
这是什么?你的班级是MyClass
的实例吗?那么它应该有一个Context
对象。
或者只是通过@Yohannes的答案创建MyClass
的实例,然后构建通过MyDataSetObserver
的{{1}}对象