我的Android微调器没有ArrayAdapter工作......为什么?

时间:2011-07-21 14:29:32

标签: android spinner android-arrayadapter

我会来天堂还是下地狱? 由于我必须填充5个微调器,我尝试了非常紧凑的代码。我不明白为什么我应该使用ArrayAdapter,所以我只是将它删除,尽管所有教程都使用它。因为它有效,我被贬低了。代码只显示一个微调器:

 Spinner s2_height = (Spinner)findViewById(R.id.s2_height);
    s2_height.setOnItemSelectedListener(new OnItemSelectedListener() {  //Register a callback to be invoked when an item in this AdapterView has been selected.
        public void onItemSelected(AdapterView<?> arg0, View arg1,  //Callback method to be invoked when an item in this view has been selected
                int arg2, long arg3) {
            myCalc();}
        public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

        }
});

这是我的.java中的位置,在那里我删除了ArrayAdapter部分,通常在教程中重新编写为:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.Height_array_id, android.R.layout.simple_spinner_item);
   adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
   s2_height.setAdapter(adapter);

令人惊讶的是,它有效,我放置了一个方法myCalc,它可以正确显示所有5个微调器上的ItemPosition。现在我担心我会在另一个地方出现任何缺点,可能会改变颜色或文字高度。有人有同样的问题吗?

1 个答案:

答案 0 :(得分:6)

  

我会来天堂还是下地狱?

这对你的牧师,部长,拉比等问题来说。这不是StackOverflow的相关问题。

  

我不明白为什么我应该使用ArrayAdapter,所以我只是把它删掉了

您不必使用ArrayAdapter,但必须使用某种形式的SpinnerAdapter通过Spinner填充setAdapter()。否则,Spinner将为空。如果您的Spinner不为空,则表示您在某处调用了setAdapter()