2014-02-12 92 views
0

我需要替换字符串变量中的选定值。这是我的微调适配器,这是我动态添加:从动态添加的微调器中替换字符串值

ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(
         this, android.R.layout.simple_spinner_item, 
         helptextList); 
       spinnerAdapter 
         .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       sr.setAdapter(spinnerAdapter); 
       spinnerAdapter.notifyDataSetChanged(); 

       sr.setOnItemSelectedListener(new OnItemSelectedListener() { 

        @Override 
        public void onItemSelected(AdapterView<?> arg0, View arg1, 
          int arg2, long arg3) { 
         // TODO Auto-generated method stub 

         mSelectedSpinnerValue += helptextList.get(arg2) + ","; 
        } 

我得到的选择值成功。现在我需要使用“,”添加所有值。我的问题是这样的:第二次选择值时,它被添加到同一个字符串中,但我想用新值替换旧值。任何人都可以请建议如何获取字符串变量中的更新值。

回答

1

嗨下面的代码将帮助您...

String[] helptextList=null; 

    int i=0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     helptextList ="a~b~c".split("~"); 
     ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(
       this, android.R.layout.simple_spinner_item, 
       helptextList); 
     Spinner sr=(Spinner)findViewById(R.id.sample); 
     spinnerAdapter 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     sr.setAdapter(spinnerAdapter); 
     spinnerAdapter.notifyDataSetChanged(); 

     sr.setOnItemSelectedListener(new OnItemSelectedListener() { 

      public void onItemSelected(AdapterView<?> parent, View arg1, 
        int pos, long arg3) { 
       // TODO Auto-generated method stub 
       if(i!=0 && !parent.getItemAtPosition(pos).toString().endsWith(",")) 
       helptextList[pos]=parent.getItemAtPosition(pos).toString()+","; 
       i++; 
      } 

      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 
    } 

我检查过,如果(i!= 0)第一次检查。如果您选择该项目,它会自动更新下一次。

0

变化:

mSelectedSpinnerValue += helptextList.get(arg2) + ","; 

到:

mSelectedSpinnerValue = helptextList.get(arg2) + ","; 

有3个变量与初始值:

String sp1="Yes", sp2="NO", sp3="Got"; 

和在onitem选自:

   @Override 
       public void onItemSelected(AdapterView<?> arg0, View arg1, 
         int arg2, long arg3) { 

        sp1= helptextList.get(arg2); 
        mSelectedSpinnerValue=String.format("(%s,%s,%s)",sp1,sp2,sp3); 
       } 
+0

感谢您的回答,但我的微调器是动态添加的,举个例子:我需要三个微调器在第一时间获得所有的默认值(是,否,有),如果我改变任何值的微调它将更新在我的字符串像(没有,没有,得到).. – Madhu

+0

尝试我编辑的答案 –

+0

该值也是一个动态值,可能是它有四个值和四个旋转器.. – Madhu

0

mSelectedSpinnerValue += helptextList.get(arg2) + ","; 

取出+标志你在做什么,现在是保持与您所选择的新的串接已有String

一旦你删除+标志将在mSelectedSpinnerValue

0

使用设置选定值: -

mSelectedSpinnerValue = helptextList.get(arg2) + ","; 

相反的: -

mSelectedSpinnerValue += helptextList.get(arg2) + ",";