2016-07-05 9 views
-1

私は「はい」ボタンで電話をかけ、「いいえ」ボタンでダイアログをキャンセルしたいカスタムダイアログを作りたいと思います。しかし、ダイアログのテキストビューでは、 "Call:number"という確認ダイアログが必要です。私はメインのアクティビティでこのnoをユーザから取得しました。このNoをダイアログに表示できません。これどうやってするの? 私はインテントと共有設定を試しましたが、すべてが無駄です。私に提案をください。アクティビティの内容をダイアログに表示します

私は主なアクティビティクラスに以下のコードを書いています。

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

    } 
} 

と私はダイアログを設定している別のクラスのコードを以下に示します。それはOnCreate関数であるとして、それは(いつでも値を取ることはありませんので、あなたは、間違った場所に値を格納するためのコードを入れている

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

    } 
} 

答えて

0

)methos、

だから、のonCreate()メソッドから二行の下に削除し、次のようにonCLick()メソッドに記述します。

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

      phoneDialog(); 

    } 
関連する問題