【问题标题】:set double when item selected Spinner - Android选择项目时设置双倍 Spinner - Android
【发布时间】:2012-01-05 22:47:30
【问题描述】:

我创建了一个具有 3 个选项的微调器:初学者、高级和专业。选择一个选项时,我想创建吐司并设置双重。稍后我需要双精度值来使用该值,以使用编辑文本中的其他 2 个值进行计算。 出于开发目的,我想使用该值设置一个 textview 来检查它。 我已经尝试了一些东西,但我无法让它发挥作用。 textview 一直显示 0.0

希望有人可以帮助我。

我的java代码:

package tim.steunebrink.tab;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class AlbumsActivity  extends Activity{


private TextView ExpValue;
private double expchosen;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.albums_layout);

    ExpValue = (TextView) findViewById(R.id.ExpValue);

    Spinner spinner = (Spinner) findViewById(R.id.spinner_experience);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.experience_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent,
                View view, int pos, long id) {
            if (pos == 0) {
                // Beginner
                Toast.makeText(parent.getContext(), "Beginner = 0.5", Toast.LENGTH_LONG).show();
                double expchosen = new Double("0.5");

            } else if(pos == 1) {
                // Advanced
                Toast.makeText(parent.getContext(), "Advanced = 1.0", Toast.LENGTH_LONG).show();
                double expchosen = new Double("1.0");

            } else {
                // Pro
                Toast.makeText(parent.getContext(), "Pro = 1.5", Toast.LENGTH_LONG).show();
                double expchosen = new Double("1.5");

            }


            ExpValue.setText(Double.toString(expchosen));

        }

        public void onNothingSelected(AdapterView<?> parent) {
            // Do Nothing
        }
    }

    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
}   
}

【问题讨论】:

  • 是当你点击你的微调器的任何项目时生成的吐司吗?
  • 是的。效果很好。它的双重作用没有按应有的方式工作。我是否以正确的方式设置了它的值??
  • 现在可以使用了。它只是:expchosen = 1.0;而已。现在工作正常:)
  • 或者你可以按照我下面定义的方式来做。适合你以前工作的方式

标签: android textview double spinner


【解决方案1】:

进行这些更改

class MyOnItemSelectedListener implements OnItemSelectedListener {
        double expchosen ;
        public void onItemSelected(AdapterView<?> parent,
                View view, int pos, long id) {
            if (pos == 0) {
                // Beginner
                Toast.makeText(parent.getContext(), "Beginner = 0.5", Toast.LENGTH_LONG).show();
                expchosen= new Double("0.5");
            } else if(pos == 1) {
                // Advanced
                Toast.makeText(parent.getContext(), "Advanced = 1.0", Toast.LENGTH_LONG).show();
                expchosen = new Double("1.0");
            } else {
                // Pro
                Toast.makeText(parent.getContext(), "Pro = 1.5", Toast.LENGTH_LONG).show();
                expchosen = new Double("1.5");
            }
            ExpValue.setText(Double.toString(expchosen));
        }

        public void onNothingSelected(AdapterView<?> parent) {
            // Do Nothing
        }
    }

【讨论】:

    【解决方案2】:

    下面的代码可能对你有用。

    申请

    ExpValue.invalidate();
    

    行后

    ExpValue.setText(Double.toString(expchosen));
    

    【讨论】:

    • 是的,在 xml 中将 editable 设置为 true。更改文本不是问题,因为它在从微调器中选择项目之前显示“expvalue”。问题是如何设置双重expchosen。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多