0

I need to add a service into my application to call from the application. I can do it from a activity. But when I try it from fragment it crash the application. Firstly I have created a call() function. And call the function from onClick event. My code is attach here.

package project.dynamic.contactbooknbr;

import info.androidhive.slidingmenu.R;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class ProfileFragment extends Fragment {

    public ProfileFragment() {
    }
    Button btnCall;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_profile, container,
                false);

        View btnCall = (Button) rootView.findViewById(R.id.Call);

        btnCall.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                call();             
            }
        });
        return rootView;
    }

    private void call() {

        Intent call = new Intent(Intent.ACTION_DIAL);
        call.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        call.setData(Uri.parse("tel:" + "XXXXXXXXXXXX"));
        getActivity().startActivity(call);
    }

}

Log:

05-22 14:46:20.766: E/AndroidRuntime(1271): FATAL EXCEPTION: main
05-22 14:46:20.766: E/AndroidRuntime(1271): Process: info.androidhive.slidingmenu, PID: 1271
05-22 14:46:20.766: E/AndroidRuntime(1271): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.DIAL dat=tel:xxxxxxxxxxx flg=0x10000000 }
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.app.Activity.startActivityForResult(Activity.java:3423)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.app.Activity.startActivityForResult(Activity.java:3384)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.app.Activity.startActivity(Activity.java:3626)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.app.Activity.startActivity(Activity.java:3594)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at project.dynamic.contactbooknbr.ProfileFragment.call(ProfileFragment.java:55)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at project.dynamic.contactbooknbr.ProfileFragment.access$0(ProfileFragment.java:49)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at project.dynamic.contactbooknbr.ProfileFragment$1.onClick(ProfileFragment.java:41)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.view.View.performClick(View.java:4424)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.view.View$PerformClick.run(View.java:18383)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.os.Handler.handleCallback(Handler.java:733)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.os.Handler.dispatchMessage(Handler.java:95)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.os.Looper.loop(Looper.java:137)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at android.app.ActivityThread.main(ActivityThread.java:4998)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at java.lang.reflect.Method.invokeNative(Native Method)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at java.lang.reflect.Method.invoke(Method.java:515)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
05-22 14:46:20.766: E/AndroidRuntime(1271):     at dalvik.system.NativeStart.main(Native Method)

1 Answers1

0
 Intent callIntent = new Intent(Intent.ACTION_CALL);
                callIntent.setData(Uri.parse("tel:" + phone));
                startActivity(callIntent);

use it . no need to use getActivity()

Osman Goni Nahid
  • 1,193
  • 2
  • 15
  • 24