如何更改自定义微调的风格机器人 [英] How to change style of custom spinner in android

查看:117
本文介绍了如何更改自定义微调的风格机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的看法是因为这样, 我使用自定义适配器,用于微调

my view is as like this, I am Using Custom adapter for spinner

我从这个链接设计我的微调 <一href="http://rimpv.blogspot.in/2013/05/bind-spinner-dropdown-in-android.html">http://rimpv.blogspot.in/2013/05/bind-spinner-dropdown-in-android.html

I have design my spinner from this link http://rimpv.blogspot.in/2013/05/bind-spinner-dropdown-in-android.html

@Override
public View getView(int position, View convertView, ViewGroup parent) {
            TextView v = new TextView(getApplicationContext());
            v.setTextColor(Color.BLACK);
            v.setText(data.get(position).name);
            return v;
        }

但我想显示为这样的

but i want to show as like this

如何做到这一点的自定义微调?预先感谢帮助

how to do this in Custom spinner ? thanks in advance for help

推荐答案

这个例子只是从头开始,有没有IDE,现在对其进行测试。

EDIT 3

This examples are just from scratch, got no IDE to test it now.

如果您鸵鸟政策需要自定义适配器,您可以使用标准的ArrayAdapter工作。然后设置dropDownViewResource为您的适配器。

If you don´t need a custom adapter, you can work with standard ArrayAdapter. Then set the dropDownViewResource for Your adapter.

public class Main extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.main);
    Spinner s = (Spinner) this.findViewById(R.id.spinner);

    ArrayList<String> list = new ArrayList<String>();
    list.add("Germany");
    list.add("USA");
    list.add("Nairobi");
    list.add("Japan");

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, list);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    s.setAdapter(adapter);

    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {

            Toast.makeText(getApplicationContext(),
                    "CLICKED:"+parent.getItemAtPosition(pos).toString(),
                    Toast.LENGTH_LONG).show();
        }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }
    });
}

但如果你需要一个customAdapter,再没有什么比建立你自己的纺纱项目布局没有其他的:

But if You need a customAdapter, then there is no other than build Your own spinner item layout:

建立你的main.xml

Build Your main.xml

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
    >
   <Spinner 
      android:drawSelectorOnTop="true"
      android:id="@+id/example_spinner" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"  > 
   </Spinner>
  </LinearLayout>

打造您的微调项目的xml: spinner_item.xml:

Build Your Spinner item xml: spinner_item.xml:

    <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/spinner_item_linear_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"
       android:orientation="vertical">


    <TextView        
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content "
      android:id="@+id/spinner_textView" >        
    </TextView>

    <RadioButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/spinner_radio_button" >
   </RadioButton>

 </LinearLayout>

定义字符串数组一些输入,创建自定义适配器,该适配器设置为您的微调。

Define a string array with some input, create your custom adapter and set the adapter to your spinner.

    public class CustomSpinnerExample extends Activity {


  String []countries ={"Germany","USA","Nairobi","Japan"};

    @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Spinner mySpinner = (Spinner)findViewById(R.id.example_spinner);
    mySpinner.setAdapter(new CustomAdapter(this, R.layout.spinner_item, countries));
   }


    public class CustomAdapter extends ArrayAdapter<String>
   {

        public CustomAdapter(Context context, int resourceId,
                    String[] objects) {
              super(context, resourceId, objects);
              // TODO Auto-generated constructor stub
        }
        @Override
     public View getDropDownView(int position, View convertView,ViewGroup parent) {
        return getCustomView(position, convertView, parent);
     }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return getCustomView(position, convertView, parent);
    }

    public View getCustomView(int position, View convertView, ViewGroup parent) {

        LayoutInflater inflater=getLayoutInflater();
        View row=inflater.inflate(R.layout.spinner_item, parent, false);
        TextView label=(TextView)row.findViewById(R.id.spinner_textView);
         label.setText(countries[position]);


        RadioButton radioButton    =(RadioButton)row.findViewById(R.id.spinner_radio_button);
       radioButton.setOnClickListener(new OnClickListener(){

   public void onClick(View v){

Toast.makeText(CustomAdapter.this,"CLICKED:"+label.getText(),Toast.LENGTH_LONG).show();

  }
    });

        return row;
        }

   }
}

这篇关于如何更改自定义微调的风格机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆