1

我在 android 项目中使用微调器。一切都很好。唯一的问题是微调器没有显示我想要的方式。

这是它看起来像的图像:

难看的微调器

但我希望它看起来像这样:

好看的陀螺

4

1 回答 1

0

您可以参考下面的代码。此代码将生成带有下拉箭头的微调器外观。它是通过以下方式实现的

android.R.layout.simple_spinner_item

由 ArrayAdapter 指定。要更改其样式,您可以使用不同的布局,您可以在此处找到

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

public class MainActivity extends Activity {

    Spinner spin;
    String spin_val;
    String[] gender = { "Male", "Female" };//array of strings used to populate the spinner
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//setting layout
        spin = (Spinner) findViewById(R.id.spinner_id);//fetching view's id
        //Register a callback to be invoked when an item in this AdapterView has been selected
        spin.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long id) { 
                // TODO Auto-generated method stub
                spin_val = gender[position];//saving the value selected


            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }

        });
      //setting array adaptors to spinners 
      //ArrayAdapter is a BaseAdapter that is backed by an array of arbitrary objects
        ArrayAdapter<String> spin_adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, gender);

        // setting adapteers to spinners
        spin.setAdapter(spin_adapter);
    }


}

屏幕.xml

<Spinner
        android:id="@+id/spinner_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

你在这里有这个演示项目供你参考

希望这可以帮助。

于 2012-10-21T12:26:43.707 回答