`

Spinner 和Menu菜单展示关于退出的用法

阅读更多



 这节接着上一节“自定义登陆弹出框”,我们编写一个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>

 

  • 描述: 效果图1
  • 大小: 58.5 KB
  • 描述: Spinner效果图
  • 大小: 43.9 KB
  • 描述: Menu菜单效果图
  • 大小: 61.6 KB
  • 描述: 关于效果图
  • 大小: 53.5 KB
  • 描述: 退出效果图
  • 大小: 51.2 KB
  • 描述: 查询等待
  • 大小: 57.4 KB
分享到:
评论

相关推荐

    Spinner下拉菜单多选 MultiSelectionSpinner

    Spinner下拉菜单多选,在布局xml文件直接作为控件使用,在activity里面调用就行了

    spinner+popupwindow 实现折叠菜单

    在Android开发中,Spinner和PopupWindow是两种常用的UI组件,它们可以用来实现各种交互效果,如下拉选择、弹出菜单等。在这个“spinner+popupwindow 实现折叠菜单”的项目中,我们将探讨如何结合这两者来创建一个...

    spinner 下拉菜单源码

    总之,Spinner是Android开发中的重要组件,通过理解其源码和使用方法,我们可以更好地利用它来提升用户体验。在实践中,根据需求进行适当的自定义,可以使Spinner更好地融入到应用的界面设计中。

    android studio,demo,Spinner下拉菜单多选的实现

    在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...

    android 下拉菜单Spinner 几种使用

    本篇文章将详细介绍Android Spinner的几种使用方法。 首先,我们来了解一下Spinner的基本结构。Spinner继承自AbsSpinner,是AdapterView的一个子类。它通过Adapter来加载数据,并显示当前选中的项。Adapter可以是...

    动态添加删除spinner菜单

    在XML中,我们可以使用`&lt;Spinner&gt;`标签定义Spinner,并通过`android:entries`属性指定一个数组资源作为初始的菜单项。在代码中,我们可以通过`ArrayAdapter`将数据源(如ArrayList)绑定到Spinner。 要实现动态添加...

    Spinner下拉菜单

    通过分析这些文件,你可以深入理解Spinner的使用和自定义方法,包括但不限于XML布局、适配器的创建、事件监听等。 总之,Spinner下拉菜单在Android开发中是一种常用的组件,它允许用户在一个预定义的选项列表中进行...

    android 动态添加删除的Spinner菜单 ArrayList与Widget的依赖性

    3. 设置Adapter:使用ArrayAdapter连接菜单项和Spinner,如ArrayAdapter(context, android.R.layout.simple_spinner_item, menuItems)。 4. 设置Dropdown样式:调用setDropDownViewResource()方法,定义下拉列表的...

    android studio 的下拉菜单Spinner使用详解

    本文主要介绍了 Android Studio 中下拉菜单 Spinner 的使用详解,包括 Spinner 的相关属性、使用方法和示例程序,以及与 Gallery 组件的区别和用法。希望对大家的学习有所帮助,也希望大家多多支持我们。

    Spinner二级联动下拉菜单

    在Android开发中,Spinner是一个非常常见的控件,用于展示下拉选择列表,通常用在设置界面或者筛选条件中。"Spinner二级联动下拉菜单"是一个更复杂的功能,它涉及到两个Spinner,一个选择省份,另一个根据省份的选择...

    DropDownMenu下拉菜单

    开发者需要理解其工作原理,熟练掌握配置和使用方法,同时注重用户体验,合理利用空间,以创建出既美观又实用的下拉菜单。在实际开发过程中,不断优化和调试,确保下拉菜单在各种场景下都能稳定、流畅地运行,将是...

    MaterialSpinner 自定义Spinner

    在Android开发中,Spinner是一个常用的组件,用于展示一个下拉选择菜单,通常用在需要用户从预设选项中选择一项的场景。然而,系统默认的Spinner样式和交互可能无法满足所有设计需求,这时我们就需要对其进行自定义...

    Android spinner下垃菜单用法实例详解

    本文实例讲述了Android spinner下垃菜单用法。分享给大家供大家参考,具体如下: 一、使用数组作为数据源 1. 在layout布局文件:声明一个TextView控件和一个Spinner控件,代码如下 &lt;Spinner android:id=@+id/...

    Android 之 Spinner用法介绍

    在Android开发中,Spinner是一个非常常用的控件,它提供了...了解并掌握Spinner的使用方法和自定义技巧,将有助于提升应用的用户体验和功能多样性。在实际开发中,根据具体需求灵活运用,可以使Spinner发挥更大的作用。

    spinner实现简单计算器

    总的来说,通过这个项目,我们可以学习到Android Spinner控件的使用,数据适配器的概念,以及基本的事件监听和处理。同时,这也是一个很好的实践,帮助初学者理解Android应用程序的运行机制,提升编程能力。在这个...

    Android Spinner控件简单使用方法

    最后,设置图片和文字的对应关系,可以通过重写Adapter的`getView()`方法来实现。 **5. 监听Spinner的选择事件** 为了在用户选择Spinner项时执行相应操作,我们需要添加一个OnItemSelectedListener: ```java ...

    Spinner的二级联动

    在Android应用开发中,Spinner是一种常用的控件,用于在下拉菜单中展示一系列选项供用户选择。本示例探讨的是如何实现Spinner的二级联动效果,即一个Spinner的选择会影响到另一个Spinner的显示内容。这样的功能常见...

    Android带设置默认值的Spinner

    - 当Spinner模式为`dropdown`时,可以使用`SpinnerAdapter`的`getDropDownView()`方法来自定义下拉列表的样式。 - 如果希望进一步自定义下拉列表的动画和行为,可以使用`Spinner`的`setOnItemSelectedListener()`...

    Android menu下拉菜单

    在Android应用开发中,下拉菜单(通常称为Dropdown Menu或Spinner)是一种常见的用户界面元素,它允许用户从一组预定义的选项中选择一个。在本篇文章中,我们将深入探讨Android的下拉菜单实现,主要围绕"Android ...

    android spinner使用案例

    本篇文章将详细讲解如何在Android应用中使用Spinner,并结合具体的"android spinner使用案例"来深入理解其工作原理和用法。 ### 1. Spinner的基本概念 Spinner是Android SDK中的一个视图组件,属于`android.widget...

Global site tag (gtag.js) - Google Analytics