1.文本框(带提示功能)
<AutoCompleteTextView
android:id="@+id/acTV"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"/>
需要事先准备好提示的字段,可从数据库存储和读取用户输入的信息进行提示,现在只是举例应用
private void generateTextView(){
AutoCompleteTextView acTV = (AutoCompleteTextView) this.findViewById(R.id.acTV);
String[] items = {"陕西","西安","西安交通大学","陕西历史博物馆","西安兵马俑","西安肉夹馍"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
acTV.setAdapter(adapter);
}
2.单选框和复选框
<RadioGroup
android:id="@+id/lessonsRG"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/JavaRB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Java"/>
<RadioButton
android:id="@+id/NetRB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text=".Net"/>
<RadioButton
android:id="@+id/CRB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C++"/>
<Button
android:onClick="onRadioClick"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确定"/>
</RadioGroup>
单选按钮需要一个RadioGroup来组合各个单选按钮。
public void onRadioClick(View v) {
RadioGroup lessonsRG = (RadioGroup) this.findViewById(R.id.lessonsRG);
int ID = lessonsRG.getCheckedRadioButtonId();
String msg = null;
switch (ID) {
case R.id.JavaRB:
msg = "Java";
break;
case R.id.NetRB:
msg = ".Net";
break;
case R.id.CRB:
msg = "C++";
break;
}
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/JvavCB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Java"/>
<CheckBox
android:id="@+id/NetCB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text=".Net"/>
<CheckBox
android:id="@+id/CCB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C++"/>
<Button
android:layout_width="0dp"
android:onClick="checkboxOnclick"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确定"/>
</LinearLayout>
复选框可用LinearLayout来包裹各个选择按钮
public void checkboxOnclick(View v){
CheckBox JavaCB = (CheckBox) this.findViewById(R.id.JvavCB);
CheckBox NetCB = (CheckBox) this.findViewById(R.id.NetCB);
CheckBox CCB = (CheckBox) this.findViewById(R.id.CCB);
StringBuilder string = new StringBuilder();
string.append(JavaCB.isChecked()?JavaCB.getText()+" ":"");
string.append(NetCB.isChecked()?NetCB.getText()+" ":"");
string.append(CCB.isChecked()?CCB.getText()+" ":"");
Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
}
3.下拉列表
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
private void generateSpinner(){
Spinner spinner = (Spinner) this.findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.add("Java");
adapter.add(".Net");
adapter.add("C++");
adapter.add("Python");
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String selection = (String) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), selection, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
4.菜单
须在res->menu文件夹中建立一个xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/collect" android:title="收藏此文章"/>
<item android:id="@+id/sina" android:title="分项到新浪微博"/>
<item android:id="@+id/qq" android:title="分享到QQ空间"/>
</menu>
在重载函数onCreateOptionsMenu加载该Xml资源
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
菜单各项的响应
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.collect:
Toast.makeText(this, "收藏此文章", Toast.LENGTH_SHORT).show();
break;
case R.id.sina:
Toast.makeText(this, "分享到新浪微博", Toast.LENGTH_SHORT).show();
break;
case R.id.qq:
Toast.makeText(this, "分享到QQ空间", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}