安卓spinner怎么用toast显示

安卓spinner怎么用toast显示,第1张

import javautilArrayList;import javautilList;import androidappActivity;import androidosBundle;import androidviewView;import androidviewViewOnClickListener;import androidwidgetAdapterView;import androidwidgetAdapterViewOnItemSelectedListener;import androidwidgetArrayAdapter;import androidwidgetButton;import androidwidgetSpinner;import androidwidgetToast;/ 下拉列表显示 /public class SpinnerActivity extends Activity { //定义下拉列表 private Spinner spinner_info = null; //定义为下拉列表(spinner)添加一条信息的Button按钮 private Button btn_spinner_add = null; //定义为下拉列表(spinner)删除一条信息的Button按钮 private Button btn_spinner_del = null; //定义一个字符串数组 private String[] args = {"jinan","zhonggong","licheng"}; //内容适配器的数据源,由于用到了动态添加或删除下拉列表数据,因此数据源采用了动态list数组而非静态String数组 private List<String> list = null; //定义一个内容适配器 private ArrayAdapter<String> arrayAdapter = null; @Override protected void onCreate(Bundle savedInstanceState) { superonCreate(savedInstanceState); setContentView(Rlayoutactivity_spinner); //初始化控件信息 initView(); } / 初始化控件信息 / private void initView(){ //数据源添加数据 list = new ArrayList<String>(); for(String arg:args){ listadd(arg); } //spinner对象 spinner_info = (Spinner)findViewById(Ridspinner_info); //定义并初始化内容适配器,加载数据及样式,采用系统自带的样式 arrayAdapter = new ArrayAdapter<String>(SpinnerActivitythis,androidRlayoutsimple_spinner_item,list); //设置下拉列表的显示样式(风格),采用系统自带的样式(风格) arrayAdaptersetDropDownViewResource(androidRlayoutsimple_spinner_dropdown_item); //为下拉列表添加适配器 spinner_infosetAdapter(arrayAdapter); / 下拉列表选择事件 / spinner_infosetOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<> arg0, View arg1, int arg2, long a) { ToastmakeText(SpinnerActivitythis, "我点选了"+args[arg2]toString(), ToastLENGTH_SHORT)show(); } @Override public void onNothingSelected(AdapterView<> arg0) {} }); / 下拉列表(spinner)添加一条信息 / btn_spinner_add = (Button)findViewById(Ridbtn_spinner_add); btn_spinner_addsetOnClickListener(new OnClickListener() { @Override public void onClick(View v) {// String add_info = "我是新添加的数据"; //向内容适配器添加一条信息 arrayAdapteradd(add_info); //获取新添加的信息的位置 int position = arrayAdaptergetPosition(add_info); //设置新添加的信息为选中状态 spinner_infosetSelection(position); } }); / 下拉列表(spinner)删除一条信息 / btn_spinner_del = (Button)findViewById(Ridbtn_spinner_delete); btn_spinner_delsetOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //移除所选信息 arrayAdapterremove(spinner_infogetSelectedItem()toString()); } }); }}

一、activity

1一个activity就是一个类,继承activity;

2需要复写onCreate()方法;

3每一个activity都需要在AndroidMainfestxml清单上进行配置;

4为activity添加必要的控件。

二、布局

线性布局:LinearLayout

1填满父空间:fill_parent、match_parent

2文本多大空间就有多大:warp_content

3文字对齐方式:gravity

4占屏幕的比例:layout_weight="1"  水平方向,则width=0,垂直方向,则height=0

5一行显示,空间不够会省略:singleLine="ture"  false会换行

6背景:background="#ffffff"

7水平布局:orientation="horizontal"

垂直布局:orientation="vertivcal"

表格布局:TableLayout

1内边距:padding

2外边距:marginLeft\Start、Right\End、Top、Bottom

三、RelativeLayout相对布局

layout_above 将该控件的底部置于给定ID控件之上

layout_below 将该控件的顶部置于给定ID控件之下

layout_toLeftOf 将该控件的右边缘和给定ID控件的左边缘对齐

layout_toRightOf 将该控件的左边缘和给定ID控件的右边缘对齐

layout_alignBaseline 该控件的baseline和给定ID的控件的Baseline对齐

layout_alignBottom 该控件的底部边缘和给定ID的控件的底部边缘对齐

layout_alignLeft 该控件的左边缘和给定ID的控件的左边缘对齐

layout_alignRight 该控件的右边缘和给定ID的控件的右边缘对齐

layout_alignTop 该控件的顶部边缘和给定ID的控件的顶部边缘对齐

layout_alignparentBottom 如果该值为true,则该控件的底部和父控件的底部对齐layout_alignParentLeft 如果该值为true,则该控件的左边和父控件的左边对齐

layout_alignParentRight 如果该值为true,则该控件的右边和父控件的右边对齐

layout_alignParentTop 如果该值为true,则该控件的上边和父控件的上边对齐

layout_centerHorizontal 如果该值为true,则该控件将被置于水平方向的中央

layout_centerInParent 如果该值为true,则该控件将被置于父控件水平和垂直方向的中央

layout_centerVertival 如果该值为true,则该控件将被置于垂直方向的中央

四、一个Intent对象包含一组信息

1Component name

2Action

3Data

4Category

5Extras

6Flags

Intent intent = new Intent(this, SecondActivityclass);

startActivity(intent);  //startActivity方法

intentputExtra("Key", "Value");  //键值对

intent = getIntent();

String value = intentgetStringExtra("Key");    //通过键提取数据

五、初级控件:EditText、TextView、Button

1获取EditText的值

String value = EditTextgetText()toString();

2将值放到Intent对象中

Intent intent = new Intent();

intentputExtra("one",value )

intentsetCalss(Activitythis, OtherActivityclass);

3使用这个Intent对象来启动Otheractivity

ActivitythisstartActivity(intent);

4将监听器的对象绑定到按钮对象上

buttonsetOnclickListener(new Listener());

5得到Intent对象当中的值

Intent intent = getIntent();

String value1 = intentgetStringExtra("one");

int value2 = IntegerparseInt(value);

六、其他初级控件使用

①ImageView

②RadioGroup和RadioButton

setOnCheckedChangeListener(new RadioGroupOnCheckedChangeListener())

③Checkbox

setOnCheckedChangeListener(new CompoundButtonOnCheckedChangeListener())

④Menu

1当客户点击MENU按钮的时候,调用onCreateOptionMenu()方法

public boolean onCreateOptionMenu(Menu menu){

menuadd(0,1,1,Rstringid);

}

2当客户点击MENU内部的具体某一个选项时,调用onOptionItemSelected()方法

public boolean onOptionItemSelected(MenuItem item){

if(itemgetItemId() == 1){

finish();

}

return superonOptionItemSelected(item);

}

七、Activity的生命周期

1第一次创建时调

protected void onCreat(Bundle saveInstanceState);

2显示出来时调用

protected void onStrat();

3获得用户焦点时调用(可 *** 作)

protected void onResume();

4点击d出第二个Activity时调用

protected void onPause();

5当第一个Activity不可见时调用

protected void onStop();

6当返回第一个Activity时调用,代替OnCreate,因为没被销毁

protected void onRestart();

7当返回第一个Activity时调用(先执行onStop,在执行,因为第二个Activity被销毁,不能返回获取,只能通过onCreat,onStart,onResume再创建)

protected void onDestory();

八、Task

1Task是存放Activity的Stack栈。当点击启动第二个Activiry时,第一个Activtiy会被压入Stack栈当中,第二个Activity会位于栈的顶部;当返回第一个Activtiy时,第二个Activity会被d出Stack,第一个Activity会位于栈的顶部,以此类推。

注释:当调用finish()时,当前的Activity会被Destory掉,栈中的Activity会消失。

2当Activity都从Stack退出后,则就不存在Task。

九、高级控件

①进度条ProgressBar

水平进度条style="android:attr/progressBarStyleHorizontal"

圆圈进度条style="android:attr/progressBarStyle"

用户可视的visibility="gone"

②列表ListView

十、其他控件

A下拉菜单Spinner

1创建一个ArrayAdapter:

ArrayAdapter<CharSequence> adapter = ArrayAdaptercreateFromResource(

this, //指上下文对象

Rarrayplant_array, //引用了在文件中定义的String数组

androidRlayoutsimple_spinner_item);//用来指定Spinner的样式,可替换自定义

adaptersetDropDownViewResource(

androidRlayoutsimple_spinner_dropdown_item);//设置Spinner当中每个条目的样式

2得到Spinner对象,并设置数据:

spinner=(spinner)findViewById(RidspinnerId);

spinnersetAdapter(adapter);

spinnersetPrompt("测试");//标题

3创建监听器

class SpinnerOnSelectListener implements OnItemSelectedListener{

@override

public void onItemSelected(

AdapterView<> adapterView,//整个列表对象

View view,//被选中的具体条目对象

int position,//位置

long id){ //id

String selected = adapterViewgetItemAtPosition(position)toString();

}

@override

public void onNothingSelected(AdapterView<> adapterView){

Sop("nothingSelected");

}

}

4绑定监听器

spinnersetOnItemSelectedListener(new SpinnerOnSelectListener());

注:第二种动态设计

1创建ArrayList对象

List<String> list = new ArrayList<String>();

listadd("test1");

2 调用方法

ArrayAdapter adapter = new ArrayAdapter(

this, //指上下文对象

Rlayoutitem, //引用了指定了下拉菜单的自定义布局文件

RidtextViewId,//id

list);//数据

3得到Spinner对象,并设置对象

spinnersetAdapter(adapter);

spinnersetPrompt("测试");//标题

3创建监听器

class SpinnerOnSelectListener implements OnItemSelectedListener{

@override

public void onItemSelected(

AdapterView<> adapterView,//整个列表对象

View view,//被选中的具体条目对象

int position,//位置

long id){ //id

String selected = adapterViewgetItemAtPosition(position)toString();

}

@override

public void onNothingSelected(AdapterView<> adapterView){

Sop("nothingSelected");

}

}

4绑定监听器

spinnersetOnItemSelectedListener(new SpinnerOnSelectListener());

BDatePicker和DatePickerDialog

1声明一个监听器,使用匿名内部类

DatePickerDialogOnDateSetListener onDateSetListener

= new DatePivkerDialogOnDateSetListener(){

public void onDateSet(

DatePicker view,

int year,

int monthOfYear,

int dayOfMonth){

Sop(year+"-"+motnOfYear+"-"+dayOfMonth)

}

}

2复写onCreateDialog(int id)方法:

@override

protected Dialog onCreateDialog(int id){

switch(id){

case DATE_PICKER_ID:

return new DatePickerDialog(this,onDateSetListener,2019,11,25);

}

return null;

}

3使用时调用showDialog()方法

showDialog(DATE_PICKER_ID);

CAutoCompleteTextView

BWidget

CAnimatin

十一、实现ContentProvider过程

1定义一个CONTENT_URI常量

2定义一个类,继承ContentProvider

3实现query、insert、update、delete、getType和onCreate方法

4在AndroidManifestxml当中进行声明

spinner一般都是传的string,  

你把  4个spinner都获取一遍,然后给最后个方法就好了

String param1 = (String) spgetSelectedItem();

项目开发中经常有些变态的需求,比如要求spinner默认不选中任何一项。

如果你自定义spinner,那这个当然不是问题;也可以在原有的选项列表中开头增加一项空字符串项,默认显示这个空字符串也达到了效果,不过采用这种方式需要你在获取被选择项的位置时忽略空字符串项。

经过一番摸索,发现我们只要保证 spinner第一次展示时不显示即可,相关代码如下:

boolean isSpinnerFirst = true ;

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutmain) ;

Spinner spinner = (Spinner)findViewById(Ridspinner) ;

spinnersetOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView<> parent, View view, int position, long id) {

if (isSpinnerFirst) {

//第一次初始化spinner时,不显示默认被选择的第一项即可

viewsetVisibility(ViewINVISIBLE) ;

}

isSpinnerFirst = false ;

}

@Override

public void onNothingSelected(AdapterView<> parent) {

}

}) ;

}

在安卓客户端需要添加下拉框,供用户选择他们需要填写的选项。

如果使用资源文件把选项写死的话,只有text一种形式可选,局限太大,因此如果要实现 value - text 这种形式的话,需要单独写一个类 SpinnerOptionjava 。

1 布局文件

<Spinner   

           android:id="@+id/town_sp"          

           android:layout_width="fill_parent"        

           android:layout_height="wrap_content"/>

2 下拉框选项实体 SpinnerOptionjava,在Spinner中显示选项的时候,默认会显示每个项(Object)的 toString() 之后的内容,因此重写 toString() 方法,让它输出 text 。

public class SpinnerOption {  

    private String value = "";  

    private String text = "";  

  

    public SpinnerOption() {  

        value = "";  

        text = "";  

    }  

  

    public SpinnerOption(String value, String text) {  

        thisvalue = value;  

        thistext = text;  

    }  

  

    @Override  

    public String toString() {   

        return text;  

    }  

    public String getValue() {  

        return value;  

    }  

    public String getText() {  

        return text;  

    }  

}

3 Fragment中:

ArrayList<SpinnerOption> towns;  

  

//准备好下拉框内容  

towns = new ArrayList<SpinnerOption>();  

for (int i = 0; i < 18; i++) {  

    SpinnerOption c = new SpinnerOption(i + "", i + " 镇");  

    townsadd(c);  

}  

  

townSp = (Spinner)viewfindViewById(Ridtown_sp);  

//设置Adapter  

ArrayAdapter<SpinnerOption> townAdapter = new ArrayAdapter<SpinnerOption>(getActivity(),androidRlayoutsimple_spinner_item, towns);  

townAdaptersetDropDownViewResource(androidRlayoutsimple_spinner_dropdown_item);  

townSpsetAdapter(townAdapter);  

//取下拉框的值  

postDataput("townId", ((SpinnerOption)townSpgetSelectedItem())getValue());

在取值时要注意,getSelectedItem()得到的是笼统的Object对象而已,还需要把它转换类型为SpinnerOption类才能取值。

完成之后的效果:

以上就是关于安卓spinner怎么用toast显示全部的内容,包括:安卓spinner怎么用toast显示、Android基础知识、Android开发,spinner应用,如何传参的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9386638.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存