2016-02-27 27 views
0

我想获取ID作为每个复选框选择,使用模型类,但我想单个字符串存储单个ID,用户选择复选框,然后点击按钮,按钮单击我用户会得到字符串中的ID,但它不工作以下是我的代码可以帮助我吗?如何存储在单个字符串中的ID

@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:无效指数3 ,大小为3 就这一行String fourid = tet.get(3); – albert

+0

所以我添加了尝试抓住,所以eror已经消失了,但logcat没有显示任何东西 – albert

回答

1

改变它......您正在访问的列表索引(如.. 1,2,3)不是的基础上,对列表的循环索引(如得到(J))..

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

我在我的日志中得到这个 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

中,但代码中的字符串在哪里?你在列表中添加了id? –

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

现在,如果选择两个复选框,然后单击按钮,并在我的logcat它显示 D/ID:tetaray:12 – albert

+0

你可以告诉如果我想将我的第二个选定的ID存储在另一个字符串? – albert

相关问题