如何更改自定义微调的风格机器人 [英] How to change style of custom spinner in android
问题描述
我的看法是因为这样, 我使用自定义适配器,用于微调
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屋!