如何将getContext传递给不工作的Java类?

如何将getContext传递给不工作的Java类?,java,android,progress-bar,Java,Android,Progress Bar,我正在为ProgressBarI创建公共java类,错误如下 java.lang.NullPointerException: Attempt to invoke virtual method 'void app.bridgecenterandstaffmanagament.com.bridgecenterandstaffmanagament.CommonClass.Singletonclass_obj.showProgressBar(android.content.Context)' on a

我正在为
ProgressBar
I创建公共java类,错误如下

java.lang.NullPointerException: Attempt to invoke virtual method 'void app.bridgecenterandstaffmanagament.com.bridgecenterandstaffmanagament.CommonClass.Singletonclass_obj.showProgressBar(android.content.Context)' on a null object reference
                                                                                                                           at app.bridgecenterandstaffmanagament.com.bridgecenterandstaffmanagament.Fragments.NotificationFragment.onCreateView(NotificationFragment.java:41)
片段

public class NotificationFragment extends Fragment {


    public NotificationFragment() {
        // Required empty public constructor
    }

    RecyclerView recyclerView;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        View v = inflater.inflate(R.layout.fragment_notification, container, false);


        recyclerView = v.findViewById(R.id.recylierview_notification);



       // Singletonclass_obj.getInstance().showProgressBar(getActivity());
        Singletonclass_obj.getInstance().showProgressBar(getContext());
       // print();

        return v;
    }


}
Java

public class Singletonclass_obj extends Application{
    private  ProgressBar progressBar;
    private static Singletonclass_obj singletonclassobj;



    public static Singletonclass_obj getInstance() {
        return singletonclassobj;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        singletonclassobj = this;
    }

    public void showProgressBar(Context context)
    {
      //  Toast.makeText(context, "welcometoindia", Toast.LENGTH_SHORT).show();
        progressBar = new ProgressBar(context, null, android.R.attr.progressBarStyleSmall);
    }

    public void hideProgressBar()
    {
        if (progressBar !=null && progressBar.isShown())
            progressBar.setVisibility(View.INVISIBLE);
     }

}
同样的编码工作很好我的上一个项目..请帮助我任何一个

根据我所说的

尝试将您的
Singletonclass\u obj
添加到
应用程序标记内的清单文件中,如下面的code

<application
        android:name=".Singletonclass_obj"<!--add here your Singletonclass_obj class -->
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

问题是您没有正确初始化应用程序类。基本上,系统不知道您的类,因此它不会被创建。您需要在
清单
中的
标记中添加以下内容,它将起作用:

android:name=".Singletonclass_obj" 
并这样称呼它:
((Singletonclass_obj)getActivity().getApplication()).showProgressBar(getContext())

但是,正如我在评论中所说的,您不需要将应用程序类创建为单例,因为它已经是单例了。因此,您的应用程序类应该是这样的:

public class Singletonclass_obj extends Application {
    private ProgressBar progressBar;

    @Override
    public void onCreate() {
        super.onCreate();
    }

    public void showProgressBar(Context context)
    {
//          Toast.makeText(context, "welcometoindia", Toast.LENGTH_SHORT).show();
        progressBar = new ProgressBar(context, null, android.R.attr.progressBarStyleSmall);
    }

    public void hideProgressBar()
    {
        if (progressBar !=null && progressBar.isShown())
            progressBar.setVisibility(View.INVISIBLE);
    }

}

即使这将解决您关于NPE的问题,您也无法使用
ProgressBar
,因为您没有添加它的视图(应用程序没有视图)。

为什么不使用
Singletonclass\u obj.getInstance().showProgressBar(getActivity())?你的应用程序实现已经是一个单例,没有必要再做一次。@John Joe我试着不工作了,先生。@Iulian Popescu我试着不工作了..我的上一个项目同样的代码在工作,先生..但为什么不在这里工作我不知道,,请告诉我我我犯了什么错误,你在清单文件中添加了单例类对象作为
android:name=“”
它正在工作,长官,但进度条没有显示,正在打印toast消息。ProgressDialog也在显示,但ProgressBar没有显示。问题出在哪里,长官。`ProgressBar=new ProgressBar(上下文,null,android.R.attr.progressBarStyleLarge);progressBar.setVisibility(View.VISIBLE);`singletonclass内部sir
progressBar=新的progressBar(上下文,null,android.R.attr.progressBarStyleLarge);progressBar.setVisibility(View.VISIBLE)未显示原因sir@Mariyappan您将无法使用ProgressBar,因为您没有视图添加到您的
Singletonclass_obj
谢谢,先生,Toast消息正在打印,但ProgressBar没有显示,先生。如何实现ProgressBar,先生,因为进度对话框已弃用。