2016-03-22 29 views
1

sıfır benim kodudur:Arayan telefon numarası keser ilk İşte

MainActivity.java

public class MainActivity extends AppCompatActivity { 
    private long sTime = 0L; 
    private Handler myHandler = new Handler(); 
    private long wait2 = 1000000000; 
    private int telnum2;` 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     Button butt = (Button) findViewById(R.id.butt); 
     Button buttstop = (Button) findViewById(R.id.buttstop); 
     if (butt != null) { 
      butt.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        EditText wait = (EditText) findViewById(R.id.editText2); 
        wait2 = Integer.parseInt(wait.getText().toString()) * 1000; 
        EditText telnum = (EditText) findViewById(R.id.editText); 
        telnum2 = Integer.parseInt(telnum.getText().toString()); 
        sTime = SystemClock.uptimeMillis(); 
        myHandler.removeCallbacks(AutoCaller); 
        myHandler.postDelayed(AutoCaller, wait2); 

       } 
      }); 
     } 
     buttstop.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       myHandler.removeCallbacks(AutoCaller); 
      } 
     }); 
    } 

    private Runnable AutoCaller = new Runnable() { 
     @Override 
     public void run() { 
      final long start = sTime; 
       startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + telnum2))); 
      myHandler.postDelayed(this, wait2); 
     } 
    }; 
    @Override 
    protected void onPause() { 
     myHandler.removeCallbacks(AutoCaller); 
     super.onPause(); 
    } 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     myHandler.postDelayed(AutoCaller, wait2); 
    }} 

layout_main.xml

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

<include layout="@layout/content_main" /> 

It 2 EditText ve 2 Düğme oluşturur. İlk olarak (0111) numarasını ve ikinci olarak da (1). I. düğmesini (id: butt) tıklatıyorum ve 111 numaralı telefonu arıyorum (0111 yazdım).

Teşekkürler!

cevap

1

Thats mantığı: "0111" dizesini bir Tamsayı olarak ayrıştırıyorsunuz, ancak sayı, sıfırın kendisi veya bir float/çift değer değilse sıfırla başlamıyor. Böylece Java, ayrıştırma sırasındaki sıfırı sıfırlar çünkü sıfır, bir sayı için kullanılamaz çünkü sayının değerini değiştirmez.

+0

Ukrayna'da yaşıyorum, bu yüzden telefon numaralarımız sıfır ile başlıyor. Bu sıfırı kaldırırsak, "Bu planınıza izin verilmez" sesli mesaj alırız. –

+0

Ancak Intent ile başlıyorsunuz ("tel:" + telnum2), böylece bir Tamsayıya bölüştüremezsiniz ve telnum2 diyebilirsiniz bir String'dir ve değer, TextView – Luftbaum

+0

'un tam olarak Dize değerine eşittir. Artık çağrı başlatılmaz. –

1

sorun kaldırılır Numaraları bir tamsayı

telnum2 = Integer.parseInt(telnum.getText().toString()); 

Lider sıfırları (0100, örneğin 100 ile aynı sayıdır) olarak dizi ayrıştırma vardır. Baştaki sırayı korumak için sayıyı String olarak tutmalısınız.

+0

İçe aktarma dizgisi, hata veriyor: int ihtiyacı, bulundu java.lang.String –

0

Değişken türünü Dize olarak değiştirin ve Tamsayı olarak ayrıştırmayın.

0

"Telefon numaraları" aslında sayılar değil, rakam dizileridir. Sayısal büyüklükleri yok ("benim telefon numaram seninkinden daha yüksek!"), Ve özellikle de baştaki sıfırlar anlamlıdır, bu rakamlar için geçerli değildir. Yani her zaman sayı olarak değil, dizge olarak davranmalısın.

İlgili konular