- 浏览: 80191 次
- 性别:
- 来自: 深圳
文章分类
最新评论
这节接着上一节“自定义登陆弹出框”,我们编写一个spinner,和点击Menu菜单查看关于与退出的操作
效果如图:
静态效果
选择spinner:
点击手机上的Menu按钮效果:
点击Menu关于选项:
点击退出:
提交数据弹出等待框:
代码:
package com.gk.view; import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import android.app.Activity; import android.app.ActivityManager; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import com.gk.R; import com.gk.model.Agent; public class mainview extends Activity implements OnItemSelectedListener,OnClickListener{ private TextView mytextview; private Spinner myspinner; private String[] items ={"未完成","已完成"}; private ArrayAdapter<String> ad; private ImageButton seachbutton; private ImageView outview; private EditText expertxt; private String itemvalue=""; private List<NameValuePair> params; private ProgressDialog progressdialog; private AlertDialog comfirmDialog; private AlertDialog about; private String expername; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mainview); //setContentView(R.layout.mainview);//设置布局 //这里是登陆传递过来的对象,看不懂的话看看上一节吧,主要是用来取出登陆的用户名,显示在节目上 //Agent agent = (Agent) getIntent().getSerializableExtra("agentvalue"); Bundle bundle = getIntent().getExtras(); Agent agent = (Agent) bundle.get("agent"); //要使用spinner需要实现OnItemSelectedListener接口 mytextview =(TextView) findViewById(R.id.textviewtitle); mytextview.setText("当前用户:"+agent.getAgentname()); myspinner =(Spinner) findViewById(R.id.mySpinner); //创建适配器 ad =new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,items); ad.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); myspinner.setAdapter(ad); myspinner.setOnItemSelectedListener(this);//实现监听器 seachbutton =(ImageButton) findViewById(R.id.seachbutton); seachbutton.setOnClickListener(this); expertxt = (EditText) findViewById(R.id.txt_expert); expertxt.setText("xxxx");//这里为了测试方便,写上默认值 outview =(ImageView) findViewById(R.id.outview); outview.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder ad = new AlertDialog.Builder(mainview.this); ad.setTitle("提示"); ad.setMessage("确认退出吗?"); comfirmDialog=ad.create(); comfirmDialog.setButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //退出系统 ActivityManager activityManager=(ActivityManager) mainview.this.getSystemService(ACTIVITY_SERVICE); activityManager.restartPackage("com.gk"); } }); comfirmDialog.setButton2("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { comfirmDialog.cancel();//取消 } }); comfirmDialog.show();//显示对话框 } }); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //mytextview.setText(items[position]); itemvalue =items[position]; System.out.println("selected:"+items[position]); } @Override public void onNothingSelected(AdapterView<?> parent) { } @Override //seachbutton点击事件 public void onClick(View v) { //itemvalue expername = expertxt.getText().toString(); System.out.println(itemvalue+" "+expername); //组装参数 params =new ArrayList<NameValuePair>(); String ov; progressdialog =ProgressDialog.show(mainview.this, "请等待...", "正在提交..."); params.add(new BasicNameValuePair("overflag", itemvalue)); params.add(new BasicNameValuePair("consultationexpert", expername)); seachr.sleep(100); } private seachHandler seachr =new seachHandler(); class seachHandler extends Handler{ @Override public void handleMessage(Message msg) { try{ Intent intent =new Intent(); intent.setClass(mainview.this, taskView.class); intent.putExtra("overflag", itemvalue); //将查询参数传递到下一个Activity让它进行查询 intent.putExtra("consultationexpert", expername); mainview.this.startActivity(intent); Toast.makeText(mainview.this, "提交完毕", Toast.LENGTH_SHORT).show(); }catch(Exception e){ e.printStackTrace(); }finally{ progressdialog.dismiss(); } } //设置消失的时间 public void sleep(long delayMillis){ this.removeMessages(0); sendMessageDelayed(obtainMessage(0), delayMillis); } } //Menu需要实现的两个方法 @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 1, 1, "关于"); menu.add(0, 2, 2, "退出"); return super.onCreateOptionsMenu(menu); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.about, null); if(item.getItemId() == 1){ AlertDialog.Builder ad =new AlertDialog.Builder(this); ad.setTitle("关于"); ad.setView(view); about = ad.create(); about.setButton("关闭", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { about.cancel(); } }); about.show(); }else{ ActivityManager activityManager=(ActivityManager) mainview.this.getSystemService(ACTIVITY_SERVICE); activityManager.restartPackage("com.gk"); //com.gk是项目的默认包 看看你R.java的所在包就是他了 //要实现退出系统还需要在AndroidManifest.xml文件里注册一个权限 // <uses-permission android:name="android.permission.RESTART_PACKAGES"/> } return super.onMenuItemSelected(featureId, item); } }
布局文件:
about.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:gravity="center" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="关于的内容xxxxx"/> </LinearLayout> mainview.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:background="@drawable/bg" android:orientation="vertical" > <ImageView android:id="@+id/outview" android:layout_width="fill_parent" android:layout_height="63dip" android:background="@drawable/title"/> <LinearLayout android:layout_width="fill_parent" android:background="@drawable/content" android:layout_height="203dip" android:gravity="center_vertical" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:gravity="left" android:text="咨询状态:" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#78B52E" /> <Spinner android:id="@+id/mySpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0dip" android:layout_marginRight="20dip" android:layout_weight="0.26" android:autoText="false" android:capitalize="none" android:gravity="fill_horizontal" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:textColor="#78B52E" android:gravity="left" android:text="专家姓名:" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/txt_expert" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0dip" android:layout_marginRight="20dip" android:autoText="false" android:capitalize="none" android:gravity="fill_horizontal" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="right" > <ImageButton android:id="@+id/seachbutton" android:layout_width="100dip" android:layout_height="40dip" android:layout_marginRight="20dip" android:background="@drawable/seach" android:text="查 询" /> </LinearLayout> </LinearLayout> <TextView android:id="@+id/textviewtitle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout>
发表评论
-
android 自定义view
2012-04-07 15:54 1661自定义view:1. 继承view,重构构造方法: publi ... -
Android 获取联系人
2012-03-22 17:18 1066Cursor cursor = content ... -
一些常用的控件及其项目实例
2011-12-16 09:49 885下载须知:进入下载页面后,可以点击普通用户进行下载,如图: ... -
listview实例 simpleAdapter自定义列
2011-12-16 09:30 1254listview 利用simpleAdapter自定义列布局, ... -
android音乐播放器开源项目实例
2011-12-16 09:17 1483android音乐播放器开源项目实例,部分效果图如下: ... -
Android QQ登陆界面实例
2011-12-16 09:01 1219QQ登陆效果: 代码下载: -
listview 滑动分页 contextmenu菜单用法
2011-12-15 16:13 2362这节将阐述一个listview 的滑动分页效果,和contex ... -
android 自定义登陆弹出框
2011-12-15 15:09 16703从本节将开始阐述一个完整系统Demo,从登陆--主页--查 ... -
Android 全屏logo 页面
2011-12-15 14:41 3524package com.gk; import andr ...
相关推荐
Spinner下拉菜单多选,在布局xml文件直接作为控件使用,在activity里面调用就行了
在Android开发中,Spinner和PopupWindow是两种常用的UI组件,它们可以用来实现各种交互效果,如下拉选择、弹出菜单等。在这个“spinner+popupwindow 实现折叠菜单”的项目中,我们将探讨如何结合这两者来创建一个...
总之,Spinner是Android开发中的重要组件,通过理解其源码和使用方法,我们可以更好地利用它来提升用户体验。在实践中,根据需求进行适当的自定义,可以使Spinner更好地融入到应用的界面设计中。
在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...
本篇文章将详细介绍Android Spinner的几种使用方法。 首先,我们来了解一下Spinner的基本结构。Spinner继承自AbsSpinner,是AdapterView的一个子类。它通过Adapter来加载数据,并显示当前选中的项。Adapter可以是...
在XML中,我们可以使用`<Spinner>`标签定义Spinner,并通过`android:entries`属性指定一个数组资源作为初始的菜单项。在代码中,我们可以通过`ArrayAdapter`将数据源(如ArrayList)绑定到Spinner。 要实现动态添加...
通过分析这些文件,你可以深入理解Spinner的使用和自定义方法,包括但不限于XML布局、适配器的创建、事件监听等。 总之,Spinner下拉菜单在Android开发中是一种常用的组件,它允许用户在一个预定义的选项列表中进行...
3. 设置Adapter:使用ArrayAdapter连接菜单项和Spinner,如ArrayAdapter(context, android.R.layout.simple_spinner_item, menuItems)。 4. 设置Dropdown样式:调用setDropDownViewResource()方法,定义下拉列表的...
本文主要介绍了 Android Studio 中下拉菜单 Spinner 的使用详解,包括 Spinner 的相关属性、使用方法和示例程序,以及与 Gallery 组件的区别和用法。希望对大家的学习有所帮助,也希望大家多多支持我们。
在Android开发中,Spinner是一个非常常见的控件,用于展示下拉选择列表,通常用在设置界面或者筛选条件中。"Spinner二级联动下拉菜单"是一个更复杂的功能,它涉及到两个Spinner,一个选择省份,另一个根据省份的选择...
开发者需要理解其工作原理,熟练掌握配置和使用方法,同时注重用户体验,合理利用空间,以创建出既美观又实用的下拉菜单。在实际开发过程中,不断优化和调试,确保下拉菜单在各种场景下都能稳定、流畅地运行,将是...
在Android开发中,Spinner是一个常用的组件,用于展示一个下拉选择菜单,通常用在需要用户从预设选项中选择一项的场景。然而,系统默认的Spinner样式和交互可能无法满足所有设计需求,这时我们就需要对其进行自定义...
本文实例讲述了Android spinner下垃菜单用法。分享给大家供大家参考,具体如下: 一、使用数组作为数据源 1. 在layout布局文件:声明一个TextView控件和一个Spinner控件,代码如下 <Spinner android:id=@+id/...
在Android开发中,Spinner是一个非常常用的控件,它提供了...了解并掌握Spinner的使用方法和自定义技巧,将有助于提升应用的用户体验和功能多样性。在实际开发中,根据具体需求灵活运用,可以使Spinner发挥更大的作用。
总的来说,通过这个项目,我们可以学习到Android Spinner控件的使用,数据适配器的概念,以及基本的事件监听和处理。同时,这也是一个很好的实践,帮助初学者理解Android应用程序的运行机制,提升编程能力。在这个...
最后,设置图片和文字的对应关系,可以通过重写Adapter的`getView()`方法来实现。 **5. 监听Spinner的选择事件** 为了在用户选择Spinner项时执行相应操作,我们需要添加一个OnItemSelectedListener: ```java ...
在Android应用开发中,Spinner是一种常用的控件,用于在下拉菜单中展示一系列选项供用户选择。本示例探讨的是如何实现Spinner的二级联动效果,即一个Spinner的选择会影响到另一个Spinner的显示内容。这样的功能常见...
- 当Spinner模式为`dropdown`时,可以使用`SpinnerAdapter`的`getDropDownView()`方法来自定义下拉列表的样式。 - 如果希望进一步自定义下拉列表的动画和行为,可以使用`Spinner`的`setOnItemSelectedListener()`...
在Android应用开发中,下拉菜单(通常称为Dropdown Menu或Spinner)是一种常见的用户界面元素,它允许用户从一组预定义的选项中选择一个。在本篇文章中,我们将深入探讨Android的下拉菜单实现,主要围绕"Android ...
本篇文章将详细讲解如何在Android应用中使用Spinner,并结合具体的"android spinner使用案例"来深入理解其工作原理和用法。 ### 1. Spinner的基本概念 Spinner是Android SDK中的一个视图组件,属于`android.widget...