展会信息港展会大全

自定义spinner android开发学习
来源:互联网   发布日期:2015-10-02 15:55:30   浏览:2081次  

导读:看了系统的spinner组件,真是不想再看了,前两天自己写了个各位看官,请看图囧了,弄了蓝牙的图片main.xml?xml version=1.0 encoding=utf-8?LinearLayout xmlns:android=http://schemas.android.com/......

看了系统的spinner组件,真是不想再看了,前两天自己写了个

各位看官,请看图

囧了,弄了蓝牙的图片

main.xml

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="#E0E0E0"

>

<Spinner

android:id="@+id/mySpinner"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:listSelector="@drawable/grouplist_item_bg"

/>

<Button

android:id="@+id/button"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="test"

/>

</LinearLayout>

真囧,现在发现里面不仅是有spinner,还有其他的,各位看官将就下的

package com.spinner;

import android.R.color;

import android.app.Activity;

import android.app.Dialog;

import android.content.Context;

import android.content.DialogInterface;

import android.graphics.Color;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.Button;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.Spinner;

import android.widget.Toast;

import android.widget.AdapterView.OnItemSelectedListener;

public class TestSpinnerActivity extends Activity {

/** Called when the activity is first created. */

Spinner spinner = null;

String selected = "0";

private Button button;

private ListView listView;

Dialog dialog;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

spinner = (Spinner)findViewById(R.id.mySpinner);

button = (Button)findViewById(R.id.button);

button.setOnClickListener(new ButtonListener());

initMySpinner();

}

class ButtonListener implements OnClickListener{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

DialogShow di = new DialogShow(TestSpinnerActivity.this);

di.show();

}

}

public Dialog showDialog(Context context){

return dialog;

}

public boolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

super.onCreateOptionsMenu(menu);

MenuInflater menuInflater = getMenuInflater();

menuInflater.inflate(R.menu.menu, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// TODO Auto-generated method stub

switch(item.getItemId()){

case R.id.write:

Toast.makeText(this,"添加菜单被点击了"+item.getTitle(),Toast.LENGTH_SHORT).show();

break;

case R.id.suggestion:

break;

case R.id.change_account:

break;

case R.id.account_manager:

break;

case R.id.logout:

break;

case R.id.exit:

break;

}

return super.onOptionsItemSelected(item);

}

private void initMySpinner(){

int phones [] = {R.drawable.apple,R.drawable.blue};

int strings[] = {R.string.apple,R.string.blue};

MyAdapter adapter = new MyAdapter(this,phones,strings);

spinner.setAdapter(adapter);

spinner.setPrompt("test");

//spinner.setSelection(0, true);

spinner.setOnItemSelectedListener(new SpinnerSelectItemListener());

}

class SpinnerSelectItemListener implements OnItemSelectedListener{

@Override

public void onItemSelected(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generated method stub

// 获取当前选中选项对应的LinearLayout

LinearLayout ll = (LinearLayout) view;

Toast.makeText(TestSpinnerActivity.this, parent.getItemAtPosition(parent.getSelectedItemPosition()).toString(), 0).show();

}

@Override

public void onNothingSelected(AdapterView<?> parent) {

// TODO Auto-generated method stub

}

}

}

在这里用到了baseadapter,用来装载数据的

package com.spinner;

import android.content.Context;

import android.graphics.Color;

import android.view.Gravity;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.TextView;

public class MyAdapter extends BaseAdapter{

private Context context;

private int drawableIds[];

private int StringIds[];

public MyAdapter(Context context,int drawableIds[],int StringIds[]){

this.context=context;

this.drawableIds=drawableIds;

this.StringIds=StringIds;

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return drawableIds.length;

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return drawableIds[position];

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

// 动态生成每个下拉项对应的View,每个下拉项View由LinearLayout

// 中包含一个ImageView及一个TextView构成

// 初始化LinearLayout

LinearLayout ll = new LinearLayout(context);

ll.setOrientation(LinearLayout.HORIZONTAL);

ll.setGravity(Gravity.CENTER_VERTICAL);

ImageView lv = new ImageView(context);

System.out.println("---------"+position);

lv.setImageResource(drawableIds[position]);

lv.setLayoutParams(new ViewGroup.LayoutParams(100, 40));

ll.addView(lv);

TextView tv = new TextView(context);

tv.setText(StringIds[position]);

tv.setTextColor(Color.BLUE);

tv.setTextSize(14);

ll.addView(tv);

return ll;

}

}

哈,真心不好意思啊,里面还有自定义dialog的代码,谅解,时间有限,还要出去腐败の

赞助本站

人工智能实验室

相关热词: 自定义 spinner

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港