package cn.sharpeha.pipishare;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;
class dateString {
private String Year;
private String Month;
public dateString(String Year,String Month){
this.Year=Year;
this.Month=Month;
}
public String getYear(){
return Year;
}
public String getMonth(){
return Month;
}
}
public class dateArray extends ArrayAdapter<dateString>{
private int resourceID;
Context con;
List<dateString> datestrings;
public dateArray(Context context, int ResourceID, List<dateString> object){
super(context,ResourceID,object);
resourceID=ResourceID;
con=context;
datestrings=object;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
dateString ds=getItem(position);
//LayoutInflater _LayoutInflater=LayoutInflater.from(con);
//convertView=_LayoutInflater.inflate(resourceID, null);
convertView= LayoutInflater.from(getContext()).inflate(resourceID,parent,false);
if(convertView!=null){
TextView year=(TextView)convertView.findViewById(R.id.nsd_sp_year);
TextView month=(TextView)convertView.findViewById(R.id.nsd_sp_month);
year.setText(ds.getYear());
month.setText(ds.getMonth());
Toast.makeText(getContext(),ds.getYear()+"."+ds.getMonth(),Toast.LENGTH_SHORT).show();
}
return convertView;
}
@Override
public View getDropDownView(int position,View convertView,ViewGroup parent) {
return super.getDropDownView(position, convertView, parent);
}
}
public class dateArray extends BaseAdapter{
Context c;
List<dateString> d;
public dateArray(Context context,List<dateString> datelist){
c=context;
d=datelist;
}
@Override
public int getCount() {
return d.size();
}
@Override
public Object getItem(int position) {
return d.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater _LayoutInflater=LayoutInflater.from(c);
convertView=_LayoutInflater.inflate(R.layout.nsd_spinner, null);
if(convertView!=null)
{
TextView _TextView1=(TextView)convertView.findViewById(R.id.nsd_sp_year);
TextView _TextView2=(TextView)convertView.findViewById(R.id.nsd_sp_month);
_TextView1.setText(d.get(position).getYear());
_TextView2.setText(d.get(position).getMonth());
}
return convertView;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/nsd_sp_year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="年"/>
<TextView
android:id="@+id/nsd_sp_month"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="月"/>
</LinearLayout>
为把年月显示在Spinner上,重写了ArrayAdapter总是在下拉时出错,没发现问题。改用BaseAdapter后,功能就实现了,但ArrayAdapter是继承的BaseAdapter的啊?真奇怪。