-1

I want to make a custom dialog in which I want to make call by yes Button and cancel the dialog by no button. But on the text view in dialog I want confirmation dialog saying "Call : number". I have taken this no from the user in main Activity and I am unable to bring this No to Dialog. How can I do this? I have tried by intent and Shared preferences but all in vain. Give me Suggestions.

I have written following code in Main activity class.

package com.example.deepak.phone_call;

import android.Manifest;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements View.OnClickListener {
    Button b;
    EditText edittext1;
    SharedPreferences sharedPreferences;
    SharedPreferences.Editor edit;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b = (Button) findViewById(R.id.button);
        b.setOnClickListener(this);
        edittext1=(EditText)findViewById(R.id.edittext1);
       String number=edittext1.getText().toString();
        sharedPreferences = getSharedPreferences("mydata",MODE_PRIVATE);
        edit= sharedPreferences.edit();
                edit.putString("s1",number);
        edit.commit();

       // Intent intent = new Intent(this, phone_call.class);
       // intent.putExtra("s1",number);

    }
    private void phoneDialog(){

        Dialog dialog = new Dialog(MainActivity.this);

        dialog.setContentView(R.layout.phone_call);

        dialog.setTitle("Call:");

        dialog.show();

    }

        @Override
    public void onClick(View v) {
           phoneDialog();

     }
 }

and following code in another class in which I have set Dialog.

    import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Created by Deepak on 7/5/2016.
 */
public class phone_call extends Activity implements View.OnClickListener {
Button button2,button3;
    TextView editText;
    SharedPreferences shredpreference;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.phone_call);
        button2= (Button) findViewById(R.id.button2);
        button2.setOnClickListener(this);
        button3= (Button) findViewById(R.id.button3);
        button3.setOnClickListener(this);

        editText = (TextView) findViewById(R.id.editText);
        //Intent intent = getIntent();
       //String s1= intent.getStringExtra("s1");

shredpreference = getSharedPreferences("mydata",0);
      String s1=  shredpreference.getString("s1","null");
        editText.setText("Call"+ s1+":");

    }

    @Override
    public void onClick(View v) {
        //Intent intent = getIntent();
       // String s1= intent.getStringExtra("s1");
        shredpreference = getSharedPreferences("mydata",0);
        String s1=  shredpreference.getString("s1","null");

        switch (v.getId()) {
            case R.id.button2:
                Intent callIntent = new Intent(Intent.ACTION_CALL);
                callIntent.setData(Uri.parse("tel:" +s1 ));//change the number


                try{
                    startActivity(callIntent);
                }

                catch (android.content.ActivityNotFoundException ex){
                    Toast.makeText(getApplicationContext(),"yourActivity is not founded",Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.button3:
                finishActivity(100);
                break;
        }

    }
}
comrade
  • 4,590
  • 5
  • 33
  • 48
Deepak
  • 1
  • 1

1 Answers1

0

You have put code for storing values at wrong place, so it will not take values anytime as it is in oncreate() methos,

So remove below two lines from onCreate() method and write it in onCLick() method as below.

     @Override
     public void onClick(View v)
     {
          String number = edittext1.getText().toString();
          edit.putString("s1",number);
          edit.commit();

          phoneDialog();

     }
Vickyexpert
  • 3,147
  • 5
  • 21
  • 34