non-static method getActivity()

后端 未结 4 836
情深已故
情深已故 2021-01-29 10:53

I made the method \"showResult\" static but i have problem with :

\"Toast.makeText(`getActivity()`.getApplication(), result2 + \"\\n\" + \"Total Amount:=\" + tot         


        
相关标签:
4条回答
  • 2021-01-29 11:14

    Try using context instead of getActivity.getApplication()

    Declare context as:

    private static Context context = null;
    

    and then intialize it as:

    context=getActivity();
    

    and then Toast :

    Toast.makeText(context, result2 + "\n" + "Total Amount:=" + totalAmount2 + "€", Toast.LENGTH_LONG).show();
    
    0 讨论(0)
  • 2021-01-29 11:14

    Try this

    private static Context context = null;
    

    initialize it in onCreateView() like

       @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            context = getActivity(); //check this
            ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_list2, container, false);
    
            Button mButton = (Button) rootView.findViewById(R.id.button);
            mButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    showResult(v);
    
    
                }
            });
            //return inflater.inflate(R.layout.fragment_list2, container, false);
            return rootView;
        }
    

    And in that toast change like this

    Toast.makeText(context, result2 + "\n" + "Total Amount:=" + totalAmount2 + "€", Toast.LENGTH_LONG).show();
    
    0 讨论(0)
  • 2021-01-29 11:20

    remove .getApplication()

    and add

    Toast.makeText(getActivity(), result2 + "\n" + "Total Amount:=" + totalAmount2 + "€", Toast.LENGTH_LONG).show();
    
    0 讨论(0)
  • 2021-01-29 11:28

    the error explain itself you can not use getActivity() which is not static in static method you can do the following scenario define an Activity act; initialize it in onCreateView

    act =getActivity();
    

    and in the your method :

    Toast.makeText(act, result2 + "\n" + "Total Amount:=" + totalAmount2 + "€", Toast.LENGTH_LONG).show();
    
    0 讨论(0)
提交回复
热议问题