Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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
Java Android:将TextView作为参数传递给外部函数将返回nullpointerexception_Java_Android - Fatal编程技术网

Java Android:将TextView作为参数传递给外部函数将返回nullpointerexception

Java 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

我试图将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.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()


谢谢。

效果很好,谢谢!