从动态添加的微调器中替换字符串值

时间:2014-02-12 12:22:34

标签: android

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

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) + ",";
                    }

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

4 个答案:

答案 0 :(得分: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)第一次检查。如果您选择了项目,它将在下次自动更新。

答案 1 :(得分: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);
                }  

答案 2 :(得分:0)

删除+登录

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

您现在正在做的是继续将已存在的String与您选择的新版本连接起来。

删除+符号后,它会在mSelectedSpinnerValue

中设置所选值

答案 3 :(得分:0)

使用: -

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

而不是: -

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