package com.qihoinfo;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import com.qihoinfo.util.ClientService;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity {
String requestByHttpGet = null;
String requestByHttpPost = null;
String returnResult ="";
String url_str = "http://192.168.1.67/androidjson.php";
Map<String, String> params = null;
TextView textView;
// 声明变量
private ProgressDialog pd;
// 定义Handler对象
private Handler handler = new Handler() {
@Override
// 当有消息发送出来的时候就执行Handler的这个方法
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
textView.setText(returnResult);
break;
default:
textView.setText("请求严重超时,请检查你的网络设置是否通畅!");
break;
}
// 只要执行到这里就关闭对话框
pd.dismiss();
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i("tag", "onCreate()-->" + Thread.currentThread().getName());
textView = (TextView) findViewById(R.id.text);
processThread();
textView.setText(returnResult);
}
private void processThread() {
// 构建一个下载进度条
pd = ProgressDialog.show(MainActivity.this, "加载数据", "网络数据加载中......");
Log.i("tag", "processThread()-->" + Thread.currentThread().getName());
new Thread() {
@Override
public void run() {
Log.i("tag", "run()-->" + Thread.currentThread().getName());
//执行请求数据的方法
longTimeMethod();
if(returnResult.equals("")){
// 执行完毕后给handler发送一个超时消息
handler.sendEmptyMessage(1);
}else{
// 执行完毕后给handler发送一个空消息
handler.sendEmptyMessage(0);
}
}
}.start();
}
// 模拟下载文件的长耗时方法
private void longTimeMethod() {
try {
Log.i("tag", "longTimeMethod-->" + Thread.currentThread().getName());
Thread.sleep(0);
params = new HashMap<String, String>();
params.put("name", "张三");
try {
requestByHttpGet = ClientService.requestByHttpGet(url_str,
params, "UTF-8");
JSONArray jArray = new JSONArray(requestByHttpGet);
if (jArray.length() > 0 && jArray != null) {
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
// 通过返回的json储存的搜索过得mysql列表值进行获取
Log.e("json", json_data.toString());
returnResult += "\n您的名称是 :"
+ json_data.getString("uName") + "\nid:"
+ json_data.getString("id");
}
}
requestByHttpPost = ClientService.requestByHttpPost(url_str,
params, "UTF-8");
JSONArray jArray2 = new JSONArray(requestByHttpPost);
for (int i = 0; i < jArray2.length(); i++) {
JSONObject json_data = jArray2.getJSONObject(i);
// 通过返回的json储存的搜索过得mysql列表值进行获取
Log.e("json", json_data.toString());
returnResult += "\n您的名称是 :" + json_data.getString("uName")
+ "\nid:" + json_data.getString("id");
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
本篇文章将详细讲解如何在Android中自定义ProgressDialog,以及如何实现带加载图片和文字说明的功能。 首先,我们需要创建一个新的类来继承自Dialog,因为ProgressDialog本质上就是Dialog的一个子类。这个类将作为...
本示例将深入探讨如何在Android应用中使用ProgressDialog,并通过线程来实现动态加载数据。 首先,ProgressDialog是Android SDK提供的一个对话框类,用于显示一个带有可选消息和进度条的对话框。它可以有两种模式:...
android 自定义组合progressdialog进度条,方便你的使用............................................................................................
在Android开发中,当应用程序需要执行耗时操作,如网络请求、数据库操作或大量计算时,为了提供良好的用户体验,我们通常会使用ProgressDialog显示一个加载指示器,告知用户程序正在后台处理,并请求他们稍等片刻。...
在Android开发中,ProgressDialog是一个非常常见的组件,它用于在用户执行耗时操作(如网络请求、数据加载等)时提供反馈,展示一个等待界面。在本文中,我们将深入探讨如何在Android应用程序中有效地使用自带的...
在Android开发中,ProgressBar和ProgressDialog是两种常用的进度条控件,用于展示应用程序执行的后台任务或数据加载状态。本文将详细讲解如何在Android应用中使用这两种控件。 首先,我们来了解一下`ProgressBar`。...
android自定义ProgressDialog样式详解,一分钟教会你如何自定义android样式。
android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法
在Android开发中,ProgressDialog是一种常见的UI组件,用于在执行耗时操作时向用户显示进度,以提供更好的用户体验。默认的ProgressDialog通常包含一个圆形进度条,但有时为了满足特定的界面设计或功能需求,开发者...
在Android开发中,自定义`ProgressDialog`是一种常见的需求,它允许开发者根据应用的UI风格定制加载提示界面。本文将深入探讨如何实现一个自定义的`ProgressDialog`,并结合源码和工具来创建一个符合设计需求的加载...
下面我们将深入探讨如何在Android中自定义ProgressDialog,实现加载滚动条效果。 首先,我们需要创建一个新的布局文件,比如`custom_progress_dialog.xml`,来定义自定义对话框的视图结构。在这个布局文件中,我们...
在Android开发中,ProgressDialog是一种常见的UI组件,用于在应用程序执行耗时操作时向用户显示进度指示,例如网络请求、数据加载等。然而,系统默认的ProgressDialog样式可能无法满足所有设计需求,因此开发者经常...
ProgressDialog是Android SDK提供的一种UI组件,它允许开发者在后台执行耗时操作时向用户显示一个进度指示器,以告知用户应用程序正在处理数据或执行任务。在本教程中,我们将深入探讨如何使用ProgressDialog来提升...
android:text="正在加载数据,请稍候..." /> <!-- 如果需要取消功能,可以添加以下按钮 --> android:id="@+id/buttonCancel" android:layout_width="wrap_content" android:layout_height="wrap_content" ...
在Android开发中,ProgressDialog是一个非常常见的组件,它用于在用户等待长时间操作完成时显示一个进度指示器,以提供用户友好的界面体验。本篇将详细探讨`ProgressDialog`的源码实现,以及如何在Android应用中使用...
在Android开发中,文件复制和进度条的显示是常见的需求,尤其在移动应用中,用户可能需要将数据从一个位置移动到另一个位置,或者在后台下载文件时展示进度。`ProgressDialog`是Android SDK提供的一种对话框组件,...
Android推荐使用AsyncTask与ProgressDialog结合,以便在后台线程执行耗时操作,同时在UI线程更新ProgressDialog。`onPreExecute()`方法中显示ProgressDialog,`onProgressUpdate()`更新进度,`onPostExecute()`关闭...
ProgressDialog是Android SDK提供的一种默认的加载对话框,通常有圆形和水平两种样式。默认情况下,它会显示一个旋转的指示器或者进度条,并配以简单的文字描述。要使用ProgressDialog,首先需要在布局文件中声明,...
ProgressDialog 是一个对话框式的组件,通常用于在执行耗时操作(如网络请求、数据加载等)时向用户显示进度,给用户一个反馈,表明应用正在后台工作并未挂起。ProgressDialog有两种主要样式:圆形进度条和垂直滚动...