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