如何在Java中从自定义视图获取ArrayList

如何在Java中从自定义视图获取ArrayList,java,android,arraylist,view,nullpointerexception,Java,Android,Arraylist,View,Nullpointerexception,我有一个Java类Class1,它扩展了视图,如下所示: public class Class1 extends View { private ArrayList<SomeClass> list; public Class1(Context context,AttributeSet attrs) { super(context,attrs); list=new ArrayList<>(); } @Override

我有一个Java类Class1,它扩展了视图,如下所示:

public class Class1 extends View
{   private ArrayList<SomeClass> list;
    public Class1(Context context,AttributeSet attrs)
    {   super(context,attrs);
        list=new ArrayList<>();
    }

    @Override
    protected void onDraw(Canvas canvas)
    {   canvas.drawSomething();
    }

    void FunctiontoaddelementstoArrayList()
    {   list.add(SomeClass);
    }

    public ArrayList<SomeClass> getList()
    {    return this.list;
    }
}
}


但是,它在
mylist.getList()处抛出一个
NullPointerException
行,如何从自定义视图类中获取ArrayList?

在代码段中发布活动的onCreate mylist未初始化。你是说myview吗?我已经编辑了这个问题。我已经确认我的ArrayList在class1中不是空的。在布局成功膨胀之前,你可能正在调用findViewById,但从你发布的代码片段中无法判断
<com.example.Class1
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myview"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_marginBottom="3dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="3dp"
    android:layout_weight="1"
    android:background="#FFFFFFFF" />
public class MainActivity extends AppCompatActivity
{   private Class1 class1;
private Button fetch;
private ArrayList<SomeClass> mylist;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);    
class1=(Class1)findViewById(R.id.myview);
fetch=(Button)findViewById(R.id.fetch);
fetch.setOnClickListener(new View.OnClickListener()
{   @Override
    public void onClick(View v)
    {   try
        {   mylist = class1.getList();
            SomeClass S = mylist.get(0);
            Log.v("Got", S.getSomeThing());
        }
        catch(NullPointerException e)
        {   e.printStackTrace();
        }
    }
});