【Android之UI】Spinner

Spinner

简单Spinner

xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
     <Spinner
             android:prompt="@string/hello"
             android:id="@+id/spinnertest"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             />
</LinearLayout>

SpinnerTest

public class SpinnerTest extends Activity{
    Spinner spinner = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    //To change body of overridden methods use File | Settings | File Templates.
        setContentView(R.layout.spinnerlayout);
        spinner = (Spinner)findViewById(R.id.spinnertest);
        //定义数据源
        String[] str = new String[]{"北京","哈尔滨","菲律宾"};
        //适配器与连接数据源
        ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<String>(SpinnerTest.this,android.R.layout.simple_spinner_dropdown_item,str);
        spinner.setAdapter(stringArrayAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(SpinnerTest.this, ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                //To change body of implemented methods use File | Settings | File Templates.
            }
        });

    }}

自定义:

User

public class User {
    private String name;
    private String address;

    public User(){};
    public User(String name, String address){
        this.name  = name;
        this.address = address;
    };
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
自定义userlayout.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
      <TextView android:id="@+id/t1"
                android:drawableLeft="@drawable/button"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:paddingLeft="10dp"
              android:paddingRight="10dp"
              />
    <TextView android:id="@+id/t2"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
            />
</LinearLayout>

自定义适配器

public class UserAdapter extends BaseAdapter {
    private Context context;
    private List<User> userList;
    public UserAdapter(Context context, List<User> user) {
        this.context = context;
        this.userList = user;
    }

    public UserAdapter() {
        super();    //To change body of overridden methods use File | Settings | File Templates.
    }

    @Override
    public int getCount() {
        return userList.size();  //To change body of implemented methods use File | Settings | File Templates.
    }

    @Override
    public Object getItem(int position) {

        return userList.get(position);  //To change body of implemented methods use File | Settings | File Templates.
    }

    @Override
    public long getItemId(int position) {
        return position;  //To change body of implemented methods use File | Settings | File Templates.
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = LayoutInflater.from(context).inflate(R.layout.userlayout,null);
        TextView textView = (TextView)convertView.findViewById(R.id.t1);
        TextView textView2 = (TextView)convertView.findViewById(R.id.t2);
        textView.setText(userList.get(position).getName());
        textView2.setText(userList.get(position).getAddress());
        return convertView;  //To change body of implemented methods use File | Settings | File Templates.
    }
}
SpinnerTest

public class SpinnerTest extends Activity{
    Spinner spinner = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    //To change body of overridden methods use File | Settings | File Templates.
        setContentView(R.layout.spinnerlayout);
        showSpinner();
    }

    public void showSpinner(){
        List<User> users = new ArrayList<User>();
        users.add(new User("张三","哈尔滨人"));
        users.add(new User("李四","北京人"));
        users.add(new User("王麻子","辽宁人"));
        UserAdapter userAdapter = new UserAdapter(SpinnerTest.this, users);
        spinner = (Spinner)findViewById(R.id.spinnertest);
        spinner.setAdapter(userAdapter);
    }
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值