2016-02-27 4 views
0

Я пытаюсь получить идентификатор в соответствии с выбором флажка, используя класс модели, но я хочу сохранить один идентификатор в одной строке, установить флажок пользователя, а затем нажать кнопку, на кнопках щелкнуть i user будет получать идентификаторы в string.but, но не работает следующий мой код может кто-нибудь помочь мне с этим?Как хранить идентификатор в отдельной строке

@Override 
     public void onClick(View v) { 
      String data = ""; 

      tet=new ArrayList<String>(); 

      for (int i = 0; i < aList.size(); i++) { 
       singleStudent = aList.get(i); 
       if (singleStudent.isselected() == true) { 
        data = data + "\n" + singleStudent.getPOOJA_LISTING_ID().toString(); 


        tet.add(singleStudent.getPOOJA_LISTING_ID()); 

        System.out.println("firstid" + tet); 
       } 
      } 

      try { 
       for(int j=0; j<tet.size(); j++) 
       { 
        Toast.makeText(PoojaSelection.this, 
          "Selected Pooja: \n" + tet.get(j), Toast.LENGTH_LONG) 
          .show(); 
        String oneid=tet.get(0); 
        String secid=tet.get(1); 
        String thirdid=tet.get(2); 
        String fourthid=tet.get(3); 
        String fifthid=tet.get(4); 
        System.out.println("tetaray" + oneid+secid+thirdid+fourthid+fifthid); 
       } 
      } 
      catch (Exception e) 
      { 

      } 



     } 
+0

Покажите please.what ошибки точно не работают –

+0

java.lang.IndexOutOfBoundsException: Invalid индекс 3 , размер 3 на этой строке Строка fourid = tet.get (3); – albert

+0

, так что я добавил try catch, поэтому eror ушел, но logcat ничего не показывает – albert

ответ

1

изменить его, как ... вы доступ к списку на основе вашего индекса (как .. 1,2,3) не на индексе цикла Листа (как получить (к)) ..

String oneid="",secid="", thirdid="" ,fourthid="", fifthid=""; 

for(int j=0; j<tet.size(); j++) 
{ 
    Toast.makeText(PoojaSelection.this, 
      "Selected Pooja: \n" + tet.get(j), Toast.LENGTH_LONG) 
      .show(); 
    if(0==j){ 
     oneid=tet.get(j); 
    }else if(1==j){ 
     secid=tet.get(j); 
    }else if(2==j){ 
     thirdid=tet.get(j); 
    }else if(3==j){ 
     fourthid=tet.get(j); 
    }else if(4==j){ 
     fifthid=tet.get(j); 
    } 
} 

Log.e("All strings ", ""+ oneid+" , "+secid+" , "+thirdid+" , "+fourthid+" , "+fifthid); 
+0

Я получаю это в своем logcate 31152-31152/com.example.india.demosss I/System.out: tet1 02-27 12: 09: 37.627 31152-31152/com.example.india.demosss I/System.out: tet2 – albert

+0

, но можете ли вы сказать, хочу ли я хранить в отдельной строке – albert

+0

, но где строка в вашем коде .. вы добавляете идентификаторы в свой список? –

1

Исключено значение IndexOutOfBoundsException, потому что вы пытаетесь получить элемент с tet.get(index), не зная, имеет ли размер tet.size() значение индекса.

Это означает, например, пытающийся tet.get(4); в то время как tet.size() равно 3. Это может решить вашу проблему:

String ids = ""; 
String secondId; 
for(int j=0; j<tet.size(); j++) { 
        Toast.makeText(PoojaSelection.this, 
          "Selected Pooja: \n" + tet.get(j), Toast.LENGTH_LONG) 
          .show(); 
        id=id+tet.get(j); 

        //only log the id string after looping all tet 
        if(j==tet.size()-1){ 
         Log.d("id","tetaray: " + id +" "); 
        } 
        // edit: save second id 
        if(j==2){ 
         Log.d("Second","Second id " + j); 
         secondId=""+j; 
        } 
       } 
+0

, но я пытаюсь сохранить идентификатор в разных и отдельных строках – albert

+0

прямо сейчас, если выбрать два флажка, а затем нажать на кнопку, а в моем логарифме он показывает D/id: tetaray: 12 – albert

+0

вы можете сказать, что, если я хочу сохранить мой второй выбранный идентификатор в другой строке? – albert

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