我需要替换字符串变量中的选定值。这是我的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) + ",";
}
我成功获得了所选值。现在我需要使用“,”添加所有值。我的问题是:在第二次选择值时,它会被添加到相同的字符串中,但我想用旧值替换旧值。任何人都可以建议如何获取字符串变量中的更新值。
答案 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) + ",";