2016-10-14 3 views
0

Я использую диалоговое окно предупреждения, чтобы показать некоторые записи. Эти записи начинаются с db и отображаются в Alertdialog.when пользователь нажимает на элемент, я хочу получить имя элемента в Log.this мой код.it показывает элемент как [test], но i хотите, показывая, как testКак получить выбранное значение из диалогового окна предупреждения?

ArrayList ArrayList и String [] categoryStrings инициализируется на верхнем

List<Video> vd=Video.findWithQuery(Video.class, "select * from Video"); 
      if (vd.size()>0) { 

       for (Video v : vd) { 

        arrayList.add(v.getTitle()); 

       } 

       final List<String> list = Arrays.asList(arrayList.toString()); 
       categoryStrings=new String[list.size()]; 
       categoryStrings=list.toArray(categoryStrings); 

       AlertDialog.Builder alert = new AlertDialog.Builder(Editmedia.this); 


       alert.setTitle("Media List"); 
       alert.setCancelable(false); 

       final int selected = 0; // or whatever you want 
       alert.setSingleChoiceItems(categoryStrings, selected, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int item) { 
         //onclick 
         String categoryString = categoryStrings[item]; 

         Log.d("sel", " " + item+" "+categoryString); 

         edit(); 
        } 
       }); 


       alert.show(); 

журнала значение показывает 0 [test] я хочу как test

Вход Log

+0

как вы хранящие значения в categoryStrings? –

+0

Пожалуйста, покажите этот журнал: 'Log.d (« sel », + categoryStrings);' – Vyacheslav

ответ

0

Попробуйте это:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("Media List"); 
       ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, 
         android.R.layout.simple_list_item_1); 
       arrayAdapter.clear(); 
       for (int i = 0; i < list.size(); i++) { 
        Log.i(LOG_TAG, list.get(i)); 
        arrayAdapter.add(list.get(i)); 
       } 
       builder.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         Toast.makeText(getApplicationContext(), list.get(which), 
           Toast.LENGTH_LONG).show(); 
        } 
       }); 
       builder.setPositiveButton("Cancel", 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int which) { 
           dialog.dismiss(); 
          } 
         }); 
       AlertDialog alert = builder.create(); 
       alert.show(); 
+0

setAdapter работал для меня – vindy

+0

С удовольствием слышу это :-) –

1

Попробуйте, это должно помочь

String categoryString = categoryStrings[item]; 

categoryString = categoryString.replaceAll("[\\p{Ps}\\p{Pe}]",""); 
Log.d("sel", " " +" "+categoryString); 

[EDIT]

String categoryString = categoryStrings[item]; 

categoryString = categoryString.replace("[",""); 
categoryString = categoryString.replace("]",""); 

Log.d("sel", " " +" "+categoryString); 
+0

Я пробовал this.then, показывая, что «не может разрешить метод replaceAll (java .lang.String, java.lang.String) ' – vindy

+0

Отредактированный код, попробуйте –

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

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