这是我得到的错误:
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;
}
}