2015-12-14 57 views
0

我想給用戶一個選擇撥號號碼的選擇。在我的情況下,我有textview包含一些電話號碼,我收集這些數字在數組中。現在,當用戶點擊一個textview我想顯示列表視圖中的所有這些數字alerdialog。我能夠做所有以上的事情,但問題是當用戶點擊對話框的通話應用程序的特定電話號碼未啓動時。我用下面的代碼:無法從AlertDialog撥號號碼

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setTitle("Choose Number") 
      .setItems(phones, new DialogInterface.OnClickListener(){ 
      @Override 
      public void onClick(DialogInterface dialog, int phNo) { 
      // TODO Auto-generated method stub 
      launchIntent = new Intent(Intent.ACTION_DIAL); 
      launchIntent.setData(Uri.parse("tel:" + phones[phNo])); 
      startActivity(launchIntent); 

     } 

    }); 

    AlertDialog alertDialog = builder.create();    
    alertDialog.show(); 

上面的代碼是在textview中。當用戶在Textview對話框上按下時,在列表視圖中出現數字。當我選擇任何數字並點擊時,它會給我下面的警告,並且無法打電話給應用程序。

attempted to finish an input event but the input event receiver has already been disposed. 

我該如何解決我的問題?在此先感謝,問候!

+0

你是什麼意思的「上面的代碼是在textview中。」?你有一個自定義的TextView類嗎? –

+0

@Gonzalo:我想打個電話,所以我正在使用launchIntent = new Intent(Intent.ACTION_DIAL); – Prasad

+0

@Gonzalo OP正在嘗試打開撥號程序,而不是在其應用中打開另一個Activity。 –

回答

1
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setTitle("Choose Number") 
     .setItems(phones, new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int phNo) { 
     // TODO Auto-generated method stub 
     launchIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phones[phNo])); 
     startActivity(launchIntent); 
    } 

}); 

AlertDialog alertDialog = builder.create();    
alertDialog.show(); 

在AndroidManifest.xml

<uses-permission android:name="android.permission.CALL_PHONE" /> 
0

我打電話startActivity(launchIntentalertDialog.show();的這樣,因爲我得到的警告後,添加此權限。