Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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/3/android/227.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
getapplicationContext()上的Java.lang.NullPointerException_Java_Android_Android Activity_Nullpointerexception_Android Context - Fatal编程技术网

getapplicationContext()上的Java.lang.NullPointerException

getapplicationContext()上的Java.lang.NullPointerException,java,android,android-activity,nullpointerexception,android-context,Java,Android,Android Activity,Nullpointerexception,Android Context,当我尝试实例化一个类时,我得到了NPE,我已经尝试使用类的名称。这个,getApplicationContext(),getApplication()。这些都不起作用,下面是日志: java.lang.NullPointerException at br.com.FragmentClientes.<init>(FragmentClientes.java:87) 不要创建参数化的活动构造函数 只需在活动中初始化数据回调方法,如onCreate(),onResume() 使用意图开始

当我尝试实例化一个类时,我得到了NPE,我已经尝试使用类的名称。这个,getApplicationContext(),getApplication()。这些都不起作用,下面是日志:

java.lang.NullPointerException
at br.com.FragmentClientes.<init>(FragmentClientes.java:87) 

不要创建参数化的
活动
构造函数

只需在
活动中初始化数据
回调方法,如
onCreate()
onResume()

使用
意图开始您的
活动


有关更多信息,请阅读活动文档

不要创建参数化的
活动
构造函数

只需在
活动中初始化数据
回调方法,如
onCreate()
onResume()

使用
意图开始您的
活动


欲了解更多信息,请阅读活动文档。

片段客户是一项活动。您不应该定义自定义constructor,因为方法
onCreate
的行为就像构造函数一样,系统会自动调用它

因此,将代码放入
onCreate
方法中


重要提示:你永远不应该,我的意思是绝对不应该给新的零碎客户打电话(1)

细分客户是一项活动。您不应该定义自定义constructor,因为方法
onCreate
的行为就像构造函数一样,系统会自动调用它

因此,将代码放入
onCreate
方法中


重要提示:你永远不应该,我的意思是绝对不应该给新的零碎客户打电话(1)

不要在其构造函数中使用活动上下文,它现在可以工作了。请将构造函数中的所有代码放入一个方法中,并在`onCreate方法中调用它,如下所示:

@Override
public void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    // TODO Auto-generated method stub
    setContentView(R.layout.fragment_cliente);

    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    SecurePreferences mSessao = new SecurePreferences(FragmentClientes.this, "sessao");
    mSessao.put("menuAtual", "Clientes");

    Integer idViagem = getIntent().getIntExtra(TAG, -1);

    init(idViagem);



}


public void init(Integer mId)  {

    clientes = new ArrayList<ClienteModel>();


    try {

        mRepositorio = new Repositorio(FragmentClientes.this);

        List lista = mRepositorio.getClientesViagem(mId);

        clientes = lista;


        ad = new ClientViewAdapter(FragmentClientes.this, this, clientes);



        lv.setVerticalFadingEdgeEnabled(true);
        lv.setVerticalScrollBarEnabled(true);


        lv.setAdapter(ad);



    } catch (Exception e) {
        e.printStackTrace();
    }


}

不要在其构造函数中使用活动上下文,它现在可以工作了。请将构造函数中的所有代码放入一个方法中,并在`onCreate方法中调用它,如下所示:

@Override
public void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    // TODO Auto-generated method stub
    setContentView(R.layout.fragment_cliente);

    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    SecurePreferences mSessao = new SecurePreferences(FragmentClientes.this, "sessao");
    mSessao.put("menuAtual", "Clientes");

    Integer idViagem = getIntent().getIntExtra(TAG, -1);

    init(idViagem);



}


public void init(Integer mId)  {

    clientes = new ArrayList<ClienteModel>();


    try {

        mRepositorio = new Repositorio(FragmentClientes.this);

        List lista = mRepositorio.getClientesViagem(mId);

        clientes = lista;


        ad = new ClientViewAdapter(FragmentClientes.this, this, clientes);



        lv.setVerticalFadingEdgeEnabled(true);
        lv.setVerticalScrollBarEnabled(true);


        lv.setAdapter(ad);



    } catch (Exception e) {
        e.printStackTrace();
    }


}

这可能是因为您的ListView没有正确实例化

private ListView lv;

您从未为对象指定任何实例化(在您提供的代码中)。

这可能是因为您的ListView没有正确实例化

private ListView lv;

您从不为对象指定任何实例化(在您提供的代码中)。

使用SecurePreferences mSessao=new SecurePreferences(FragmentClients.this,“sessao”)@阿姆鲁比德里试过了,但还是得到了同样的结果error@Stacktwo您将在下面我的答案中找到完整的解决方案。使用SecurePreferences mSessao=新的SecurePreferences(FragmentClients.this,“sessao”)@阿姆鲁比德里试过了,但还是得到了同样的结果error@Stacktwo您将在下面的答案中找到完整的解决方案。我需要在FragmentClients类中传递一个Id参数,如果不创建构造函数,如何才能做到这一点?请参阅我的答案。@Stacktwo我了解您的问题。您应该使用Intent extras在活动之间传递参数:在活动之间传递数据的另一种方法是使用LocalBroadcast。我需要在FragmentClients类中传递Id参数,如果不创建构造函数,我如何才能做到这一点?请参阅我的答案。@Stacktwo我看到了您的问题。您应该使用Intent extras在活动之间传递参数:活动之间传递数据的另一种方式是使用LocalBroadcast。我已经更新了问题,仍然得到相同的错误,但是您的行(87)不应该抛出NullPointerException。你确定是这一行而不是下一行吗?我已经更新了问题,仍然得到相同的错误,但是你的行(87)不应该抛出NullPointerException。你确定是这一行而不是下一行吗?