Java Android:将TextView作为参数传递给外部函数将返回nullpointerexception
我试图将TextView作为参数传递给外部类以执行某些功能,但每次都遇到NullPointerException Activity.javaJava Android:将TextView作为参数传递给外部函数将返回nullpointerexception,java,android,Java,Android,我试图将TextView作为参数传递给外部类以执行某些功能,但每次都遇到NullPointerException Activity.java tv = (TextView) findViewById(R.id.tv); Log.v("", "Contents: " + tv.getText().toString()); // This works fine externalClass.addViewToList(tv); externalClass.printViewContents(tv.ge
tv = (TextView) findViewById(R.id.tv);
Log.v("", "Contents: " + tv.getText().toString()); // This works fine
externalClass.addViewToList(tv);
externalClass.printViewContents(tv.getText().toString());
外部类
public List<View> _views;
// This doesn't work
public void addViewToList(View v) {
try {
this._views.add(v);
Log.v("", "Added " + v.getId() + " to list");
}
catch(NullPointerException ex) {
Log.e("", "NullPointerException when adding view to list");
}
}
// But this works fine
public void printViewContents(String contents) {
Log.v("",contents);
}
public List\u视图;
//这不管用
公共无效添加视图列表(视图v){
试一试{
本条添加了(v);
Log.v(“,”在列表中添加“+v.getId()+”);
}
捕获(NullPointerException ex){
Log.e(“,”将视图添加到列表时出现NullPointerException”);
}
}
//但这很好用
公共无效printViewContents(字符串内容){
Log.v(“”,内容);
}
因此,我知道该视图已在layout.xml中找到并已初始化,我的问题是如何将视图从活动传递到外部类
谢谢
编辑 忘记列表需要初始化为ArrayList
干杯 您的_视图列表未初始化,即您试图将数据写入null。 要解决此问题,您需要编写:
public List<View> _views = new List<>();
public List_views=new List();
而不仅仅是:
public List<View> _views;
public List\u视图;
为了减少头痛,我建议您使用数组列表:
public ArrayList<View> list = new ArrayList<>();
public ArrayList list=new ArrayList();
现在它可以工作了:)您的“\u视图”列表没有初始化。请看下面的工作
public List_views=new ArrayList()
谢谢。效果很好,谢谢!