- 浏览: 80658 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
这节接着上一节“自定义登陆弹出框”,我们编写一个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 1672自定义view:1. 继承view,重构构造方法: publi ... -
Android 获取联系人
2012-03-22 17:18 1075Cursor cursor = content ... -
一些常用的控件及其项目实例
2011-12-16 09:49 919下载须知:进入下载页面后,可以点击普通用户进行下载,如图: ... -
listview实例 simpleAdapter自定义列
2011-12-16 09:30 1294listview 利用simpleAdapter自定义列布局, ... -
android音乐播放器开源项目实例
2011-12-16 09:17 1524android音乐播放器开源项目实例,部分效果图如下: ... -
Android QQ登陆界面实例
2011-12-16 09:01 1234QQ登陆效果: 代码下载: -
listview 滑动分页 contextmenu菜单用法
2011-12-15 16:13 2375这节将阐述一个listview 的滑动分页效果,和contex ... -
android 自定义登陆弹出框
2011-12-15 15:09 16713从本节将开始阐述一个完整系统Demo,从登陆--主页--查 ... -
Android 全屏logo 页面
2011-12-15 14:41 3536package com.gk; import andr ...
相关推荐
【标题】"viewpager04"项目是一个关于Android开发的例子,它主要展示了如何在应用程序中集成和使用ViewPager组件以及ActionBar。ViewPager是一个强大的视图切换工具,常用于实现滑动页面的效果,而ActionBar则是...
1. 退出Activity时,为了保存资源和状态,应该在哪个生命周期函数中操作?答案是A、onPause()。在onPause()方法中,系统将要暂停Activity,此时应保存非关键数据。 2. Android工程中的assets目录用于什么?答案是B...
9. **09-为主界面添加Menu(1)**: 教程会展示如何创建和添加菜单项到应用程序的主菜单,增强用户体验。 10. **10-添加Menu并响应事件**: 如何处理菜单项的点击事件,执行相应的功能。 11. **11-添加对话框**: 介绍...
这段代码首先通过`onCreateOptionsMenu()`方法加载了预定义的菜单布局文件(R.menu.main),然后在`onOptionsItemSelected()`方法中根据用户选择的不同菜单项显示不同的提示信息。此外,还演示了如何使用`getString...
说明了如何使用Spinner创建一个可下拉的选择菜单,并自定义下拉菜单的外观。 - **4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性** 展示了如何动态地添加或删除Spinner中的选项,并介绍了与之...
例如,在一个计算应用程序中,我们可以使用 Menu 控件来提供关于和退出的菜单项。 六、RadioGroup 和 RadioButton 控件 RadioGroup 控件是 Android 中的一个控件,用于提供单选按钮组。RadioButton 控件是 ...
|--Spinner下拉菜单组件 |--SplashActivity |--StringUtils工具类的常用方法 |--TabHost一个界面显示多Activity |--TextView单行跑马灯效果 |--TextView虚拟获得焦点 |--uploadServlet |--uri之表示资源resource |--...