2016-07-05 11 views
-1

Ich möchte einen benutzerdefinierten Dialog machen, in dem ich einen Anruf machen möchte, indem ich ja die Schaltfläche drücke und den Dialog mit Nein abbreche. Aber in der Textansicht im Dialog möchte ich den Bestätigungsdialog "Call: number". Ich habe dieses Nein vom Benutzer in der Hauptaktivität genommen, und ich kann dieses Nein zu Dialog nicht bringen. Wie kann ich das machen? Ich habe es mit Absicht und geteilten Vorlieben versucht aber alles vergebens. Gib mir Vorschläge.den Aktivitätsinhalt zum Dialog nehmen

Ich habe folgenden Code in Hauptaktivitätsklasse geschrieben.

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(); 

    } 
} 

und folgenden Code in einer anderen Klasse, in der ich Dialog eingestellt habe.

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; 
     } 

    } 
} 

Antwort

0

Sie haben Code setzten für Werte an falscher Stelle zu speichern, so dass es nicht Werte nehmen zu jeder Zeit, wie es in oncreate() methos ist,

So unter zwei Linien von onCreate entfernen() -Methode und schreibe es in onCLick() Methode wie folgt.

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

      phoneDialog(); 

    } 
Verwandte Themen