Spinner的一些用法
1.简单的Spinner使用
实现的功能如下:
1、android:prompt="@string/partimeworkyear"是设置Spinner的标题
2、设置Spinner的格式如下
ArrayAdapter<String> partimeworkyearAdapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, mItems);
partimeworkyearAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
布局如下:
<Spinner
android:id="@+id/partimeworkyear"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/spinner_bg_default_two"
android:gravity="center_vertical"
android:paddingLeft="2dip"
android:prompt="@string/partimeworkyear"
android:textColor="@color/high_gray"
android:textSize="14dip" />
实现的代码如下:
partimeworkyear = (Spinner) findViewById(R.id.partimeworkyear);
String[] mItems = getResources()
.getStringArray(R.array.partimeworkyear);
ArrayAdapter<String> partimeworkyearAdapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, mItems);
partimeworkyearAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
partimeworkyear.setAdapter(partimeworkyearAdapter);
partimeworkyear.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String str = parent.getItemAtPosition(position).toString();
Toast.makeText(CreateParttimeResume.this, "你点击的是:" + str, 2000)
.show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
引用的字符串和字符串数组如下:
<string name="partimeworkyear">请输入你的工作年限</string>
<string-array name="partimeworkyear">
<item>在读学生</item>
<item>应届毕业生</item>
<item>1年及以下</item>
<item>1~2年</item>
<item>3~5年</item>
<item>5~8年</item>
<item>8~10年</item>
<item>10年以上</item>
</string-array>
2.自定义Spinner中的item的使用
下拉列表框在应用中也经常使用,下面就看看它的简单的实现方法
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="50dip" />
动态实现的方法
TextView textView;
Spinner spinner;
int[] images = { R.drawable.image1, R.drawable.image2, R.drawable.image3,
R.drawable.image4, R.drawable.wawa };
int[] course = { R.string.O_C, R.string.GDB, R.string.WP7, R.string.linux,
R.string.computer };
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner);
textView = (TextView) findViewById(R.id.textview);
spinner = (Spinner) findViewById(R.id.spinner);
BaseAdapter myAdapter = new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LinearLayout layout = new LinearLayout(AndroidDemoActivity.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
ImageView imageView = new ImageView(AndroidDemoActivity.this);
imageView.setImageDrawable(getResources().getDrawable(
images[position]));
imageView.setLayoutParams(new Gallery.LayoutParams(60, 60));
// 不按比例拉伸图片
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
layout.addView(imageView);
TextView text = new TextView(AndroidDemoActivity.this);
text.setText(getResources().getText(course[position]));
text.setTextSize(22);
// 设置字体的颜色
layout.addView(text);
return layout;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return course.length;
}
};
spinner.setAdapter(myAdapter);
// 设置下拉框的标题
spinner.setPrompt("请选择你想上的课程:");
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
LinearLayout layout = (LinearLayout) arg1;
TextView textcontent = (TextView) layout.getChildAt(1);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(getResources().getText(R.string.course));
stringBuilder.append(textcontent.getText());
textView.setText(stringBuilder.toString());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
实现的效果图如下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!