2016-09-20 12 views
-1

Как хранить элементы с AlertDialog - multipleChoiceItems в одной переменной. Также с сепаратором ,. Мне нужно это, чтобы перейти на удаленный сервер и извлечь его с помощью функции php - explode.AlertDialog Несколько предметов Store в одной переменной с разделителем

Вот мой демо-код: MainActivity.java

final RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl); 
    Button btn = (Button) findViewById(R.id.btn); 
    final TextView tv = (TextView) findViewById(R.id.tv); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Build an AlertDialog 
      AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 

      // String array for alert dialog multi choice items 
      String[] colors = new String[]{ 
        "Red", 
        "Green", 
        "Blue", 
        "Purple", 
        "Olive" 
      }; 

      // Boolean array for initial selected items 
      final boolean[] checkedColors = new boolean[]{ 
        false, // Red 
        true, // Green 
        false, // Blue 
        true, // Purple 
        false // Olive 

      }; 

      // Convert the color array to list 
      final List<String> colorsList = Arrays.asList(colors);` 

builder.setMultiChoiceItems(colors, checkedColors, new DialogInterface.OnMultiChoiceClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which, boolean isChecked) { 

        // Update the current focused item's checked status 
        checkedColors[which] = isChecked; 

        // Get the current focused item 
        String currentItem = colorsList.get(which); 

        // Notify the current action 
        Toast.makeText(getApplicationContext(), 
          currentItem + " " + isChecked, Toast.LENGTH_SHORT).show(); 
       } 
      }); 

Я хочу, чтобы сохранить выбранные элементы в currentItem переменной.

Таким образом, выходной образец будет выглядеть следующим образом (в Logcat): Red,Green,Blue,Purple

+0

Привет @RoCk, пожалуйста, примите мой ответ, если он работает для вас. –

+0

Здравствуйте, @RoCk, вы получили свой ответ? –

ответ

1

вы можете использовать это в вашем случае setMultiChoiceItems OnClick:

currentItem = currentItem+colorsList.get(which)+","; 

Toast.makeText(context,"Appended String :  
"+currentItem,Toast.LENGTH_LONG).show(); 

и объявить переменную:

String currentItem=""; globally 

При отправке на сервер просто выполните это:

currentItem=currentItem.substring(0,currentItem.length()-1); 

он удалит дополнительный «,» в конце.

Edit:

Для вашего вопроса в комментарии в вашей кнопки OnClick событие используйте:

for(int i=0;i<colors.length;i++) 
    currentItem = currentItem+colors[i]+","; 

    Toast.makeText(context,"Appended String : "+currentItem,Toast.LENGTH_LONG).show(); 
+1

эй RoCk попробуйте это и дайте мне знать в случае каких-либо проблем –

+0

Как насчет того, если я предоставил кнопку, чтобы выбрать их все, как я это сделаю? – RoCk

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

  • Нет связанных вопросов^_^