`

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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics