在android开发中使用微调器

时间:2013-05-06 15:45:35

标签: java android spinner

我是Android开发的新手,我有一些关于C#windows编程的经验,但也很少。我正在使用一个使用微调器的Android应用程序。到目前为止,我找到了一个制作微调器项目的教程,并在选择微调项目时在文本视图中显示微调文本。代码看起来像这样:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    spinner =(Spinner)findViewById(R.id.sp);
    text=(TextView)findViewById(R.id.tv);
    ArrayAdapter<CharSequence> adapter =ArrayAdapter.createFromResource(this, R.array.spinnerarray, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  spinner.setAdapter(adapter);
  spinner.setOnItemSelectedListener(new function());
}


public class function implements OnItemSelectedListener {

    @Override
    public void onItemSelected(AdapterView<?> parent, View arg1, int pos,
            long id) {
        // TODO Auto-generated method stub
        String str=parent.getItemAtPosition(pos).toString();
        text.setText(str);

    }

我想创建一个应用程序,它会计算一些点,用户会选择等级。示例:spinner将包含等级,例如Negative(1),Positive(2),Good(3),Very Good(4),Excellent(5)。我想要实现,当用户选择一个等级时,让我们说非常好,应用程序将使用非常好的等级4,它会将它转换为某些点,由我确定(1 = 20,2 = 40.3 60.4 = 80.5 = = 100)。这些点稍后将用于计算,但我不知道如何将点数分配给某个等级。我希望你理解我的问题并感谢你的帮助。

我有相同的应用程序用于Windows,在那里我只使用了类似:if(veryGood.IsSelected == true){points = 20},我想在这里达到相同的效果。

1 个答案:

答案 0 :(得分:0)

您需要对函数类进行简单修改:

public class function implements OnItemSelectedListener {

   private final static int[] grades = new int[]{20,40,60,80,100}; //change in whatever you want. The length of the array must be the same of the adapter, or an ArrayIndexOutOfBoundException may be throwed.

   @Override
   public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long id) {
       text.setText(grades[pos] + " points!");
   }
}

PS:在Java中,最好在类名上使用大写首字母,例如功能而不是功能。