我有一个有效的微调器。但是,当我尝试更改选择时,它不会更新。
这是应用原则:您选择一个位置,例如巴塞罗那,您应该看到价格,例如30欧元。
但是,正如我所解释的,如果你将位置改为其他东西,价格就不会改变。
这是代码(有些位是西班牙语):
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if (pos == 0){
priceAdulto = 34.00;
priceNino = 28.00;
setContentView(R.layout.activity_my);
TextView textViewAdulto = (TextView) findViewById(R.id.textView3);
textViewAdulto.setText(priceAdulto.toString());
TextView textViewNino = (TextView) findViewById(R.id.textView4);
textViewNino.setText(priceNino.toString());
Toast.makeText(getApplicationContext(), "Updated",
Toast.LENGTH_SHORT).show();
}
if (pos == 1){
priceAdulto = 25.00;
priceNino = 22.00;
setContentView(R.layout.activity_my);
TextView textViewAdulto = (TextView) findViewById(R.id.textView3);
textViewAdulto.setText(priceAdulto.toString());
setContentView(R.layout.activity_my);
TextView textViewNino = (TextView) findViewById(R.id.textView4);
textViewNino.setText(priceNino.toString());
Toast.makeText(getApplicationContext(), "Updated",
Toast.LENGTH_SHORT).show();
}
if (pos == 2) {
priceAdulto = 43.50;
priceNino = 39.00;
setContentView(R.layout.activity_my);
TextView textViewAdulto = (TextView) findViewById(R.id.textView3);
textViewAdulto.setText(priceAdulto.toString());
setContentView(R.layout.activity_my);
TextView textViewNino = (TextView) findViewById(R.id.textView4);
textViewNino.setText(priceNino.toString());
Toast.makeText(getApplicationContext(), "Updated",
Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:4)
您的错误在于不断设置ContentView 这会将视图重置为其初始状态。
您应该只设置一次布局 可能在onCreate(如果你在一个Activity中)或onCreateView(如果你在片段中)。
此外,由于您正在处理数字,因此执行多项条件检查的更优雅方法是使用switch(pos){...}
答案 1 :(得分:1)
仅设置一次内容视图,多次执行该操作会将其恢复到开头。在创建中使用设置内容视图,即可。 希望它有效。