片段布局Android中的EditText中的NullPointer异常

时间:2018-03-24 13:42:01

标签: android

这是我得到的错误:

FATAL EXCEPTION: main
Process: com.ags.softech.bottomnavigation, PID: 32567
java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
    at com.ags.softech.bottomnavigation.fragment.SMSFragment$1$1.onPermissionGranted(SMSFragment.java:62)
    at com.karumi.dexter.MultiplePermissionsListenerToPermissionListenerAdapter.onPermissionsChecked(Unknown Source)
    at com.karumi.dexter.DexterInstance$1.run(Unknown Source)
    at com.karumi.dexter.MainThread.execute(Unknown Source)
    at com.karumi.dexter.DexterInstance.checkMultiplePermissions(Unknown Source)
    at com.karumi.dexter.DexterInstance.checkPermissions(Unknown Source)
    at com.karumi.dexter.Dexter.check(Unknown Source)
    at com.ags.softech.bottomnavigation.fragment.SMSFragment$1.onClick(SMSFragment.java:94)
    at android.view.View.performClick(View.java:5706)
    at android.view.View$PerformClick.run(View.java:22837)
    at android.os.Handler.handleCallback(Handler.java:836)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6343)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1084)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:945)
    Application terminated.

这是我正在使用的代码:

package com.ags.softech.bottomnavigation.fragment;


import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.ags.softech.bottomnavigation.R;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;  
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.single.PermissionListener;

/**
 * A simple {@link Fragment} subclass.
 */
public class SMSFragment extends Fragment {

    Button  send;
    EditText  contact,msg;
    View view;
    public SMSFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view = inflater.inflate(R.layout.fragment_sm, container, false);


        send=(Button) view.findViewById(R.id.btn_Send);
        contact=(EditText) view.findViewById(R.id.txt_Number);
        msg=(EditText) view.findViewById(R.id.txt_Msg);


        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Dexter.withActivity(getActivity())
                        .withPermission(Manifest.permission.SEND_SMS)
                        .withListener(new PermissionListener() {
                            @Override
                            public void onPermissionGranted(PermissionGrantedResponse response) {
                               //Toast.makeText(view.getContext(),"err",Toast.LENGTH_LONG);


                                final String con=contact.getText().toString();
                                final String msg1=msg.getText().toString();
                                //Toast.makeText(view.getContext(),"values accepted",Toast.LENGTH_LONG);
                                try{
                                    SmsManager.getDefault().sendTextMessage(con,null,msg1,null,null);
                                }catch (Exception e1){
                                  //  Toast.makeText(view.getContext(),"massege not sent",Toast.LENGTH_LONG);
                                }
                                /*Intent smsintent=new Intent(Intent.ACTION_VIEW);
                                smsintent.setData(Uri.parse("smsto:"));
                                smsintent.setType("vnd.android-dir/mms-sms");
                                smsintent.putExtra("address"  , contact.getText().toString());
                                smsintent.putExtra("sms_body"  , "Test SMS to Angilla");
                                try {
                                    startActivity(smsintent);
                                    //finish();
                                    Log.i("Finished sending SMS...", "");
                                } catch (android.content.ActivityNotFoundException ex) {
                                    Toast.makeText(getContext(),
                                            "SMS faild, please try again later.", Toast.LENGTH_SHORT).show();
                                }*/
                            }

                            @Override
                            public void onPermissionDenied(PermissionDeniedResponse response) {

                            }

                            @Override
                            public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {

                            }
                        }).onSameThread().check();
            }
        });
        return view;
    }
}

0 个答案:

没有答案