2016-05-29 2 views
0

Я использую Android Studio 2.1.1. Я хочу создать AlertDialog с двумя (на самом деле не важно, сколько) номеров телефонов выбрать, и вы можете выбрать один, и он сделает звонок на этот номер. До сих пор я пришел с этим, но он разбился, когда я выбираю номер:Как использовать setItems и выбрать номер и назвать его?

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_manu , menu); 
    return true ; 
} 

@Override 
public boolean onOptionsItemSelected(final MenuItem item) { 
    switch (item.getItemId()) { 

      case R.id.Call : 

      AlertDialog.Builder menuDialog = new AlertDialog.Builder(SeconedScreen.this) ; 
      menuDialog.setTitle("chose a number to call") ; 
      menuDialog.setItems(phonenumbers, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int phonenumbers) { 

        switch (phonenumbers){ 
         case 0 : 
          Intent dial = new Intent(Intent.ACTION_DIAL) ; 
          dial.setData(Uri.parse(String.valueOf(phonenumbers))) ; 
          startActivity(dial); 
          break ; 
        } 
       } 
      }) ; 
      menuDialog.show() ; 
      return true ; 
    } 
    return true; 
} 

ответ

0

проблема была, что строковое значение было неправильно его пусть будет String.valueOf («тел: 0548978978») хорошо я сведущих чтобы получить его работу, делая это:

@Override 
    public boolean onOptionsItemSelected(final MenuItem item) { 
    switch (item.getItemId()) { 

     case R.id.map : 
      Intent openmap = new Intent(Intent.ACTION_VIEW) ; 
      openmap.setData(Uri.parse("https://www.google.maps.com")); 
      startActivity(openmap); 
      return true ; 

     case R.id.Call : 

      final AlertDialog.Builder menuDialog = new AlertDialog.Builder(SeconedScreen.this) ; 
      menuDialog.setTitle("chose a number to call") ; 
      menuDialog.setSingleChoiceItems(phonenumbers,-1, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int phonenumbers) { 

        switch (phonenumbers){ 
         case 0 : 

          Intent dial = new Intent(Intent.ACTION_DIAL) ; 
          dial.setData(Uri.parse(String.valueOf("tel: 0548978978"))) ; 
          startActivity(dial); 
          break ; 

         case 1 : 
          Intent dial1 = new Intent(Intent.ACTION_DIAL) ; 
          dial1.setData(Uri.parse(String.valueOf("tel: 0586587989"))) ; 
          startActivity(dial1); 
          break ; 
        } 

       } 

      }) ; 
      menuDialog.show() ; 
      return true ; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

Смежные вопросы