天天看點

Android Spinner控件的簡單應用

Spinner簡單來說就是一個下拉框。

Android Spinner控件的簡單應用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
          <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="賬号:" />

    <EditText
        android:id="@+id/edt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />
    </LinearLayout>
     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
          <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="密碼:" />

    <EditText
        android:id="@+id/edt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />
    </LinearLayout>
     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
          <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="大區:" />

          <Spinner
              android:id="@+id/sp1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_weight="1" />
    </LinearLayout>

</LinearLayout>
           
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends Activity {
	private EditText edt_Account;
	private EditText edt_pwd;
	private Spinner spinner;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.mess_layout);
		edt_Account=(EditText) findViewById(R.id.edt1);
		edt_pwd=(EditText) findViewById(R.id.edt2);
		spinner=(Spinner) findViewById(R.id.sp1);
		 final String arr[]=new String[]{  
	             "艾歐尼亞",
	             "暗影島",  
	             "無畏先鋒",  
	             "德瑪西亞",  
	             "弗雷爾卓德",  
	             "祖安",  
	             "諾克薩斯" };
		 ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, arr); 
		// arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		 //設定資料源
		 spinner.setAdapter(arrayAdapter);
		 //spinner的點選事件
		 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				Spinner sp=(Spinner) parent;
				Toast.makeText(getApplicationContext(), "大區變更為:"+sp.getItemAtPosition(position), Toast.LENGTH_SHORT).show();
			}

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

這裡可以看看出這個下拉框顯的非常的難看~

在這裡隻需要将代碼中的

arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           

取消注釋就行了,然後界面就會變成

Android Spinner控件的簡單應用

這是Spinner的标準使用方法,其中,有兩行代碼可以決定Spinner的外觀

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, arr); 
           

上面一行代碼中的第二個參數就是系統的内置布局。也是預設的樣式,如圖一

然後第二張圖的樣式隻需要設定下面的代碼就可以了 ~~也是用的内置的布局。。然後看起來會比較舒适一點。

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           

——————————————————————————————————————————————————

上面的是自己寫的數組,然後添加到資料源中。

除此之外我們也可以在XML檔案中編輯資訊然後綁定到資料源。

在value檔案夾中建立XML檔案。代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="daqu">
        <item >艾歐尼亞</item>
        <item >暗影島</item>
        <item >無畏先鋒</item>
 		<item >德瑪西亞</item>
        <item >弗雷爾卓德</item>
        <item >祖安</item>
        <item >諾克薩斯</item>
    </string-array>
</resources>
           

然後在MainActivity中進行引用便可:

String[] strings=getResources().getStringArray(R.array.daqu);
           

然後再對Spinner控件進行綁定資料源。

當然了,Spinner還有很多的用法,在此就不再一一贅述。

這隻是我自己的一些小的總結,歡迎指正。