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);
取消注释就行了,然后界面就会变成
这是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还有很多的用法,在此就不再一一赘述。
这只是我自己的一些小的总结,欢迎指正。