zoukankan      html  css  js  c++  java
  • Android控件之Spinner探究

    以下模拟下拉列表的用法

    布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <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>

    SpinnerActivity类

    package com.ljq.sp;

    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    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 SpinnerActivity extends Activity {
    private Spinner sp = null;//下拉列表
    private TextView tv = null;
    // 所有资源图片的数组
    private int[] drawableIds={R.drawable.football,R.drawable.basketball,R.drawable.volleyball};
    // 所有字符串的数组
    private int[] msgIds={R.string.zq,R.string.lq,R.string.pq};

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    tv
    = (TextView) findViewById(R.id.TextView01);
    sp
    =(Spinner)this.findViewById(R.id.Spinner01);//初始化Spinner
    sp.setAdapter(adapter);
    sp.setOnItemSelectedListener(
    new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int positon, long id) {
    LinearLayout ll
    = (LinearLayout) view;
    View v
    =ll.getChildAt(0);//获取第一个控件ImageView
    Log.i("ljq", v.getClass().getName());
    TextView tvn
    = (TextView) ll.getChildAt(1);//获取第二个控件TextView
    StringBuilder sb = new StringBuilder();
    sb.append(getResources().getText(R.string.ys)).append(
    ":").append(tvn.getText());
    tv.setText(sb.toString());
    }

    public void onNothingSelected(AdapterView<?> parent) {

    }
    });
    }

    private BaseAdapter adapter = new BaseAdapter(){
    public int getCount() {
    return drawableIds.length;
    }

    public Object getItem(int position) {
    return drawableIds[position];
    }

    public long getItemId(int position) {
    return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
    LinearLayout ll
    = new LinearLayout(SpinnerActivity.this);
    ll.setOrientation(LinearLayout.HORIZONTAL);

    ImageView iv
    = new ImageView(SpinnerActivity.this);
    iv.setImageResource(drawableIds[position]);
    ll.addView(iv);

    TextView tv
    =new TextView(SpinnerActivity.this);
    tv.setText(msgIds[position]);
    //设置内容
    tv.setTextSize(24);
    tv.setTextColor(R.color.black);
    ll.addView(tv);
    return ll;
    }
    };
    }

    运行结果

  • 相关阅读:
    dotnet 控制台读写 Sqlite 提示 no such table 找不到文件
    dotnet 控制台读写 Sqlite 提示 no such table 找不到文件
    dotnet 控制台 Hangfire 后台定时任务
    dotnet 控制台 Hangfire 后台定时任务
    dotnet 获取指定进程的输入命令行
    dotnet 获取指定进程的输入命令行
    PHP sqrt() 函数
    PHP sinh() 函数
    PHP sin() 函数
    PHP round() 函数
  • 原文地址:https://www.cnblogs.com/linjiqin/p/1963998.html
Copyright © 2011-2022 走看看