实例介绍
【实例简介】
【实例截图】


【核心代码】
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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论