天天看點

Android基礎-下拉清單控件Spinner

1)布局檔案main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".MyActivity" >
    
    <TextView 
        android:text="@string/ys"
        android:id="@+id/TextView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="28sp"
        />

    <Spinner 
        android:id="@+id/Spinner01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

</LinearLayout>
           
2)MainActivity
           
package com.howell.sample6_3;

import android.app.Activity;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;

public class MyActivity extends Activity {

	final static int WRAP_CONTENT = -2;
	
	int [] drawableIds = {R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4, R.drawable.p5};
	int [] msgIds = {R.string.p1, R.string.p2, R.string.p3, R.string.p4, R.string.p5};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		Spinner sp = (Spinner)this.findViewById(R.id.Spinner01);
		
		BaseAdapter ba = new BaseAdapter() {
			
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				// TODO Auto-generated method stub
				LinearLayout ll = new LinearLayout(MyActivity.this);
				ll.setOrientation(LinearLayout.HORIZONTAL);
				
				ImageView ii = new ImageView(MyActivity.this);
				ii.setImageDrawable(getResources().getDrawable(drawableIds[position]));
				ii.setLayoutParams(new Gallery.LayoutParams(60, 60));
				ll.addView(ii);
				
				TextView tv = new TextView(MyActivity.this);
				tv.setText(" " + getResources().getText(msgIds[position]));
				tv.setTextSize(24);
//				tv.setTextColor(getResources().getColorStateList(R.color.black));
				tv.setTextColor(Color.rgb(0, 0, 0));
				ll.addView(tv);
				return ll;
			}
			
			@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 msgIds.length;
			}
		};
		
		sp.setAdapter(ba);
		
		sp.setOnItemSelectedListener(
				new OnItemSelectedListener() {

					@Override
					public void onItemSelected(AdapterView<?> arg0, View arg1,
							int arg2, long arg3) {
						// TODO Auto-generated method stub
						TextView tv = (TextView)findViewById(R.id.TextView01);
						
						LinearLayout ll = (LinearLayout)arg1;
						
						TextView tvn = (TextView)ll.getChildAt(1);
						StringBuilder sb = new StringBuilder();
						sb.append(getResources().getText(R.string.ys));
//						sb.append(":");
						sb.append(tvn.getText());
						tv.setText(sb.toString());
					}

					@Override
					public void onNothingSelected(AdapterView<?> arg0) {
						// TODO Auto-generated method stub
						
					}
					
					
				}
				);
	}

}
           

繼續閱讀