转:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0105/2264.html
WeatherAdapterpackage example.com.spinner; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; public class WeatherAdapter extends BaseAdapter { private List<Weather> mList; private Context mContext; public WeatherAdapter(List<Weather> mList, Context mContext) { this.mList = mList; this.mContext = mContext; } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int i, View view, ViewGroup viewGroup) { LayoutInflater inflater = LayoutInflater.from(mContext); view = inflater.inflate(R.layout.item_weather, viewGroup, false); if (view != null) { ImageView iv_weather = (ImageView) view.findViewById(R.id.iv_weather); TextView tv_weather = (TextView) view.findViewById(R.id.tv_weather); iv_weather.setImageResource(mList.get(i).getWeatherIcon()); tv_weather.setText(mList.get(i).getWeatherName()); } return view; } }
item_weather.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="2dp" android:orientation="horizontal"> <ImageView android:id="@+id/iv_weather" android:layout_width="30dp" android:layout_height="20dp" android:src="@drawable/ic_weather_cloud" /> <TextView android:id="@+id/tv_weather" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="多云" android:textSize="10dp" /> </LinearLayout>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" tools:context="example.com.spinner.MainActivity"> <Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:gravity="center" /> </RelativeLayout>
package example.com.spinner; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.Spinner; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner spinner = (Spinner) findViewById(R.id.spinner1); //建立数据源 ArrayList<Weather> weathers = new ArrayList<>(); weathers.add(new Weather("多云", R.drawable.ic_weather_cloud)); weathers.add(new Weather("晴天", R.drawable.ic_weather_sunny)); weathers.add(new Weather("雨天", R.drawable.ic_weather_rainy)); weathers.add(new Weather("雾气", R.drawable.ic_weather_foggy)); weathers.add(new Weather("下雪", R.drawable.ic_weather_snowy)); weathers.add(new Weather("刮风", R.drawable.ic_weather_windy)); //建立adapter绑定数据源 WeatherAdapter adapter = new WeatherAdapter(weathers, this); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l) { Toast.makeText(MainActivity.this, "你点击的是:" + pos, 0).show(); } @Override public void onNothingSelected(AdapterView<?> adapterView) { } }); } }
http://download.csdn.net/detail/u014695188/9705341