下拉列表Spinner的使用
1.在res/values/strings.xml文件中加入字符串资源
<string name="ys">您的爱好</string>
<string name="lq">篮 球</string>
<string name="zq">足 球</string>
<string name="pq">排 球</string>
2.准备颜色资源在res/values目录下新建colors.xml文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#fd8d8d</color>
<color name="green">#9cfda3</color>
<color name="blue">#8d9dfd</color>
<color name="white">#FFFFFF</color>
<color name="black">#000000</color>
</resources>
3.设置布局。在main.xml文件中写如下代码
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:text="@string/ys"
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="28dip"/>
<Spinner
android:id="@+id/Spinner01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
4.源文件这样写
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
public class Spinner extends Activity {
final static int WRAP_CONTENT=-2;//表示WRAP_CONTENT的常量
//所有资源图片(足球、篮球、排球)id的数组
int[] drawableIds={R.drawable.football,R.drawable.basketball,R.drawable.volleyball};
//所有资源字符串(足球、篮球、排球)id的数组
int[] msgIds={R.string.zq,R.string.lq,R.string.pq};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner sp=(Spinner)this.findViewById(R.id.Spinner01);//初始化Spinner
BaseAdapter ba=new BaseAdapter(){//为Spinner准备内容适配器
@Override
public int getCount() {return 3;}//总共三个选项
@Override
public Object getItem(int arg0) { return null; }
@Override
public long getItemId(int arg0) { return 0; }
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// 动态生成每个下拉项对应的View,每个下拉项View由LinearLayout
//中包含一个ImageView及一个TextView构成
//初始化LinearLayout
LinearLayout ll=new LinearLayout(Sample_5_9.this);
ll.setOrientation(LinearLayout.HORIZONTAL); //设置朝向
//初始化ImageView
ImageView ii=new ImageView(Sample_5_9.this);
ii.setImageDrawable(getResources().getDrawable(drawableIds[arg0]));//设置图片
ll.addView(ii);//添加到LinearLayout中
//初始化TextView
TextView tv=new TextView(Sample_5_9.this);
tv.setText(" "+getResources().getText(msgIds[arg0]));//设置内容
tv.setTextSize(24);//设置字体大小
tv.setTextColor(R.color.black);//设置字体颜色
ll.addView(tv);//添加到LinearLayout中
return ll;
}
};
sp.setAdapter(ba);//为Spinner设置内容适配器
sp.setOnItemSelectedListener(//设置选项选中的监听器
new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {//重写选项被选中事件的处理方法
TextView tv=(TextView)findViewById(R.id.TextView01);//获取主界面TextView
LinearLayout ll=(LinearLayout)arg1;//获取当前选中选项对应的LinearLayout
TextView tvn=(TextView)ll.getChildAt(1);//获取其中的TextView
StringBuilder sb=new StringBuilder();//用StringBuilder动态生成信息
sb.append(getResources().getText(R.string.ys));
sb.append(":");
sb.append(tvn.getText());
tv.setText(sb.toString());//信息设置进主界面TextView
}
@Override
public void onNothingSelected(AdapterView<?> arg0) { }
}
);
}
}版权声明:
浙公网安备 33010602011771号