今天一上午的Android课,当然了,人多么,进度比较慢。
Spinner下拉菜单
为Spinner设置数据源有两种方式,第一种可以利用java-List集合方式硬编码,另一种可以使用string.xml文件实现。
一.、java-List方式:
xml布局文件中如下:
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="58dp" />
java源码如下(注意,代码中加入了Spinner的item监听,类中实现OnItemSelectedListener接口):
private Spinner spinner;
private List<String> list;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = new ArrayList<String>();
list.add("hehe");
list.add("hello");
list.add("hoho");
list.add("papapa");
spinner = (Spinner) findViewById(R.id.spinner1);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, list);
spinner.setOnItemSelectedListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String str = (String) spinner.getItemAtPosition(arg2);
Toast.makeText(this, str, 1).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
二.、xml方式:
(xml布局文件与方式一中相同:略)
在string.xml定义好<string-array>:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="arrayString">
<item>HEHE</item>
<item>gun</item>
<item>hello</item>
<item>KKK</item>
</string-array>
</resources>
java源码如下(注意,代码中加入了Spinner的item监听,类中实现OnItemSelectedListener接口):
注意ArrayAdapter<CharSequence> adapter的泛型类型为CharSequence
private Spinner spinner;
private List<String> list;
private ArrayAdapter<CharSequence> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = new ArrayList<String>();
list.add("hehe");
list.add("hello");
list.add("hoho");
list.add("papapa");
spinner = (Spinner) findViewById(R.id.spinner1);
adapter = ArrayAdapter.createFromResource(this, R.array.arrayString, android.R.layout.simple_spinner_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String str = (String) spinner.getItemAtPosition(arg2);
Toast.makeText(this, str, 1).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}