2011-03-12 73 views

回答

6

在Android中,Spinner不過是一個組合框或列表框。

它允許您查看多個項目,並允許您從列表中選擇一個項目。

編輯這樣

<Spinner android:id="@+id/Spinner01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
你的XML代碼

Java類的代碼看起來應該是這樣

public class SpinnerExample extends Activity { 
    private String array_spinner[]; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    array_spinner=new String[5]; 
    array_spinner[0]="1"; 
    array_spinner[1]="2"; 
    array_spinner[2]="3"; 
    array_spinner[3]="4"; 
    array_spinner[4]="5"; 
    Spinner s = (Spinner) findViewById(R.id.Spinner01); 
    ArrayAdapter adapter = new ArrayAdapter(this, 
    android.R.layout.simple_spinner_item, array_spinner); 
    s.setAdapter(adapter); 
    } 
} 

輸出看起來像

enter image description here

本網站爲樣本截屏的源代碼
http://www.androidpeople.com/android-spinner-example

Generaly我們不能編輯通過簡單的適配器TEXTSIZE或文本顏色,在firstxml文件中,我們聲明微調和firstjava文件,我們通過spinnername.findviewbyid找到(id)。我們只是通過xml文件創建自定義適配器,即首先我們創建第二個xml文件,我們在textview中給出我們的要求,如textview,圖像等,我們給文本顏色和文本大小,然後我們在java中創建customadapterfile,我們只是膨脹該xml文件通過我們的自定義適配器中的佈局充氣器,最後我們將該適配器傳遞給微調器。您的自定義查看微調器已創建。

在這個聯繫人列表是由和使用自定義適配器,我們誇大以下XML文件中 contactadapter文件

- :

爲你設置TEXTSIZE,文本顏色和圖像也和許多事情的自定義視圖例子

xml文件: -

<TextView android:text="Name:" android:id="@+id/tvNameCustomContact" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:layout_marginLeft="10dip" android:textColor="@color/darkcherryred" 
    /> 
<TextView android:id="@+id/tvNumberCustomContact" android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Number:" android:textColor="@color/DarkGrey" android:paddingLeft="10dip" 
    android:layout_below="@+id/tvNameCustomContact" 
    /> 
<TextView android:text="Group:" android:id="@+id/tvGroupCustomContact" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:textColor="@color/darkcherryred" android:paddingLeft="10dip" 
    android:layout_below="@+id/tvNumberCustomContact"/> 

自定義適配器文件: -

import java.util.ArrayList; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageButton; 
import android.widget.TextView; 

public class ContactAdapter extends BaseAdapter 
{ 


private ArrayList<String> name=new ArrayList<String>(); 
private ArrayList<String> number=new ArrayList<String>(); 
private ArrayList<String> group=new ArrayList<String>(); 

private LayoutInflater mInflater; 
public ContactAdapter(Context context, ArrayList<String> name,ArrayList<String> number,ArrayList<String> group1) 
{ 
    this.mInflater = LayoutInflater.from(context); 
    this.name=name; 
    this.number=number; 
    this.group=group1; 
} 

public int getCount() { 
    return this.name.size(); 
} 

public Object getItem(int position) { 
    return position; 
} 

public long getItemId(int position) { 
    return position; 
} 

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    final ViewHolder holder; 
    if (convertView == null) 
    { 
     convertView = mInflater.inflate(R.layout.contactcustomlist, null); 
     holder = new ViewHolder(); 
     holder.Name = (TextView) convertView.findViewById(R.id.tvNameCustomContact); 
     holder.Number= (TextView) convertView.findViewById(R.id.tvNumberCustomContact); 
     holder.Group= (TextView) convertView.findViewById(R.id.tvGroupCustomContact); 
     convertView.setTag(holder); 
    } 
    else 
    { 
     holder = (ViewHolder) convertView.getTag(); 
    } 





    holder.Name.setText ("Name :  "+name.get(position)); 
    holder.Number.setText("Numbers : "+number.get(position)); 
    holder.Group.setText ("Group :  "+group.get(position)); 


    return convertView; 

} 
class ViewHolder { 
    TextView Name; 
    TextView Number; 
    TextView Group; 

} 

}

我們假設您創造一個微調定義firstxml文件,終於在firstjava文件,你只需要添加的代碼微調,我們通過自定義適配器:

ContactAdapter contactadapter = new ContactAdapter(this, NameA, MobileA, group);//NameA,MobileA,Group is a arraylist in which we pass the values from main java file to ContactAdapter java file 
Spinner spinner= (Spinner)findviewbyid(R.id.spinnername); 
spinner.setAdapter(contactadapter); 
+0

謝謝,這是一個非常好的帖子。但我有一個問題。您可以刪除下拉菜單中的水平線,因爲當背景變黑和文字變白時,看上去很難看。如何在聚焦到微調器中的一個項目時如何創建不同的背景 – JibW 2011-09-16 10:30:56

1

hello-spinner教程非常有用。

http://developer.android.com/guide/tutorials/views/hello-spinner.html

一個新的XML文件添加到您的佈局文件夾。

機器人:文字顏色= 「#FF8B1500」 安卓重力= 「中心」/>

更改適配器資源到新佈局文件:

adapter = ArrayAdapter.createFromResource(
      this, R.array.sound, R.layout.spinnerLayout); 

`

相關問題