Android,微调器没有更新

时间:2015-06-24 19:20:44

标签: android android-spinner

我有一个有效的微调器。但是,当我尝试更改选择时,它不会更新。

这是应用原则:您选择一个位置,例如巴塞罗那,您应该看到价格,例如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();
    }

2 个答案:

答案 0 :(得分:4)

您的错误在于不断设置ContentView 这会将视图重置为其初始状态。

您应该只设置一次布局 可能在onCreate(如果你在一个Activity中)或onCreateView(如果你在片段中)。

此外,由于您正在处理数字,因此执行多项条件检查的更优雅方法是使用switch(pos){...}

答案 1 :(得分:1)

仅设置一次内容视图,多次执行该操作会将其恢复到开头。在创建中使用设置内容视图,即可。 希望它有效。