实例介绍
【实例简介】
【实例截图】
【核心代码】
package com.example.myfood; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Camera; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.StrictMode; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TabHost; import android.widget.TabWidget; import android.widget.TextView; import android.widget.Toast; import com.example.adapter.articleAdapter; import com.example.jsonservices.jsonarticle; import com.example.model.article; import com.example.myfood.R.color; import com.example.utils.myapplication; import com.iflytek.speech.RecognizerResult; import com.iflytek.speech.SpeechError; import com.iflytek.ui.RecognizerDialog; import com.iflytek.ui.RecognizerDialogListener; public class MainActivity extends Activity { private myapplication myapplication1; private ProgressDialog ProgressDialog1; // 加载对话框 private ListView listview1; private articleAdapter adapter; private int page = 1; private long waitTime = 2000; private long touchTime = 0; private TextView textView; private ImageButton ImageButton1;// 语音 private ImageButton ImageButton2;// 语音 private List<article> list1 = null; private List<HashMap<String, Object>> articleslist = new ArrayList<HashMap<String, Object>>(); private String textString = ""; private Thread Thread1; private boolean havedata = true; // 来判断是否还有数据 private EditText setedit; private ImageButton yuyinButton; private RelativeLayout rela; private List<article> Articles; @Override protected void onCreate(Bundle savedInstanceState) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() // or // .detectAll() // for // all // detectable // problems .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedClosableObjects() .penaltyLog().penaltyDeath().build()); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myapplication1 = (myapplication) getApplication(); myapplication1.getInstance().addActivity(this); rela = (RelativeLayout) findViewById(R.id.rlay); listview1 = (ListView) findViewById(R.id.mlistView1); textView = (TextView) findViewById(R.id.textView2); ImageButton1 = (ImageButton) findViewById(R.id.xunfeiimageButton1); ImageButton2 = (ImageButton) findViewById(R.id.systemimageButton1); final TabHost tabhost = (TabHost) findViewById(android.R.id.tabhost); tabhost.setup(); TabWidget tabwidget = tabhost.getTabWidget(); tabhost.addTab(tabhost.newTabSpec("tab1").setIndicator("活动信息") .setContent(R.id.tab1)); tabhost.addTab(tabhost.newTabSpec("tab2").setIndicator("餐厅预订") .setContent(R.id.tab2)); tabhost.addTab(tabhost.newTabSpec("tab3").setIndicator("个人信息") .setContent(R.id.tab3)); textView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub LinearLayout LinearLayout1 = (LinearLayout) getLayoutInflater() .inflate(R.layout.searchdialog, null); setedit = (EditText) LinearLayout1 .findViewById(R.searchdialog.editText1); yuyinButton = (ImageButton) LinearLayout1 .findViewById(R.searchdialog.imageButton1); new AlertDialog.Builder(MainActivity.this) .setTitle("请输入查询关键字") .setIcon(android.R.drawable.ic_dialog_info) .setView(LinearLayout1) .setPositiveButton("取消", null) .setNegativeButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { // 数据获取 searchtext(setedit.getText().toString()); } }).show(); yuyinButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub showDialog(1); } }); } }); /** * 系统设置 */ ImageButton2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(MainActivity.this, SystemActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right); } }); /*** * 餐厅预定 */ tabhost.getTabWidget().getChildAt(1) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub tabhost.setCurrentTab(0); Intent intent = new Intent(); intent.setClass(MainActivity.this, DiquActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right); } }); tabhost.getTabWidget().getChildAt(2) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub tabhost.setCurrentTab(0); Intent intent = new Intent(); intent.setClass(MainActivity.this, RegisterActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right); } }); bindarticle(); } public String localhost() { return myapplication1.getlocalhost(); } public void bindarticle() { threadstart(); listview1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Intent Intent1 = new Intent(); Intent1.setClass(MainActivity.this, ArticleActivity.class); Bundle Bundle1 = new Bundle(); Bundle1.putString("_id", articleslist.get(arg2).get("id") .toString()); Bundle1.putString("_title", articleslist.get(arg2).get("title") .toString()); Bundle1.putString("_img_url", articleslist.get(arg2).get("img_url").toString()); Bundle1.putString("_content", articleslist.get(arg2).get("content").toString()); Bundle1.putString("_add_time", articleslist.get(arg2).get("add_time").toString()); Intent1.putExtras(Bundle1); startActivity(Intent1); overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); } }); listview1.setOnScrollListener(new OnScrollListener() { @Override public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub // 当不滚动时 if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { // 判断是否滚动到底部 if (view.getLastVisiblePosition() == view.getCount() - 1) { if (havedata) { threadmore(); } } } switch (scrollState) { case OnScrollListener.SCROLL_STATE_FLING: adapter.setFlagBusy(true); break; case OnScrollListener.SCROLL_STATE_IDLE: adapter.setFlagBusy(false); break; case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL: adapter.setFlagBusy(false); break; default: break; } adapter.notifyDataSetChanged(); } }); } /*** * 配套使用加载读取 */ public void threadstart() { ProgressDialog1 = new ProgressDialog(this); ProgressDialog1.setMessage("数据加载中,请稍后..."); ProgressDialog1.show(); Thread1 = new Thread() { @Override public void run() { // TODO Auto-generated method stub try { Thread1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Handler1.sendEmptyMessage(0); } }; Thread1.start(); } private Handler Handler1 = new Handler() { public void handleMessage(Message msg) { try { list1 = loaddata(page); bindlist(list1); adapter = new articleAdapter(MainActivity.this, list1); adapter.addlist(list1); listview1.setAdapter(adapter); ProgressDialog1.dismiss(); } catch (Exception e) { e.printStackTrace(); ProgressDialog1.dismiss(); Toast.makeText(MainActivity.this, e.toString(), 1).show(); neterror();// 网络重试 } } }; /*** * 加载更多 */ public void threadmore() { ProgressDialog1 = new ProgressDialog(this); ProgressDialog1.setMessage("数据加载中,请稍后..."); ProgressDialog1.show(); Thread1 = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { Thread1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Handler2.sendEmptyMessage(0); } }); Thread1.start(); } private Handler Handler2 = new Handler() { public void handleMessage(Message msg) { try { list1 = loaddata(page = 1); bindlist(list1); adapter.addlist(list1); adapter.notifyDataSetChanged(); ProgressDialog1.dismiss(); } catch (Exception e) { e.printStackTrace(); ProgressDialog1.dismiss(); } } }; /** * 活动新闻绑定 * * @param list */ public void bindlist(List<article> list) { for (article articles : list) { HashMap<String, Object> item = new HashMap<String, Object>(); item.put("title", articles.get_title()); item.put("id", articles.get_id()); item.put("zhaiyao", articles.get_zhaiyao()); item.put("img_url", articles.get_img_url()); item.put("content", articles.get_content()); item.put("add_time", articles.get_add_time()); articleslist.add(item); } } /** * 网络重试 */ public void neterror() { final LinearLayout linearLayout = (LinearLayout) getLayoutInflater() .inflate(R.layout.networkerror, null); linearLayout.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); rela.addView(linearLayout); linearLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub rela.removeView(linearLayout); threadstart(); } }); } /*** * 读取文件流 * * @param page * @return */ public List<article> loaddata(int page) { try { Articles = jsonarticle.getjsonlastarticles( myapplication1.getlocalhost() "/android/json_article/list.aspx?channel_id=1&page=" page); } catch (Exception e) { e.printStackTrace(); Articles = new ArrayList<article>(); Toast.makeText(MainActivity.this, "全部显示完毕!", 1).show(); havedata = false; } return Articles; } /** * 退出系统 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) { long currentTime = System.currentTimeMillis(); if ((currentTime - touchTime) >= waitTime) { Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show(); touchTime = currentTime; } else { myapplication1.getInstance().exit(); } return true; } return super.onKeyDown(keyCode, event); } /** * 语音查询 */ @Override protected Dialog onCreateDialog(int id) { RecognizerDialog recognizerDialog = new RecognizerDialog( MainActivity.this, "appid=5132fe14");// 这里应该写从科大讯飞申请到的appid recognizerDialog.setEngine("sms", null, null); recognizerDialog.setListener(new RecognizerDialogListener() { @Override public void onResults(ArrayList<RecognizerResult> results, boolean arg1) { for (int i = 0; i < results.size(); i ) { textString = results.get(i).text; } } @Override public void onEnd(SpeechError arg0) { // Toast.makeText(MainActivity.this, textString, 1).show(); setedit.setText(textString.substring(0, textString.length() - 1)); } }); return recognizerDialog; } /*** * 主页面查询操作一个是语音一个是文本输入 * * @param text */ public void searchtext(String text) { if ("".equals(myapplication1.getdiqu())) { Intent Intent1 = new Intent(); Intent1.setClass(MainActivity.this, DiquActivity.class); startActivity(Intent1); Toast.makeText(MainActivity.this, "请先选择店铺地址", 1).show(); } else { myapplication1 .setgoodsurl("/android/json_goods/list.aspx?channel_id=2&keywords='" java.net.URLEncoder.encode(text) "'&page="); Intent Intent1 = new Intent(); Intent1.setClass(MainActivity.this, DiancaiActivity.class); Bundle Bundle1 = new Bundle(); Bundle1.putString("tg", "0"); Intent1.putExtras(Bundle1); startActivity(Intent1); } } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论