看了系统的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的代码,谅解,时间有限,还要出去腐败の