1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Android利用GridView加载九宫格菜单

Android利用GridView加载九宫格菜单

时间:2023-05-06 08:47:43

相关推荐

Android利用GridView加载九宫格菜单

效果图如下:

第一步:布局main.xml文件,这里使用了一个GridView和一个滚动文本控件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@drawable/backsmall"android:orientation="vertical" ><GridViewandroid:id="@+id/GridView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:columnWidth="90dip"android:gravity="center"android:horizontalSpacing="10dip"android:numColumns="3"android:verticalSpacing="10dip" ></GridView><cn.superyouth.www.itools.MarqueeTextandroid:id="@+id/textMsg" android:layout_width="fill_parent"android:layout_height="wrap_content" android:layout_marginTop="115dp" android:textColor="@android:color/black" android:lines="1"android:focusable="true"android:focusableInTouchMode="true"android:scrollHorizontally="true" android:marqueeRepeatLimit="marquee_forever" android:ellipsize="marquee" /></LinearLayout>

第二步:编写SYIT_Index.java文件,继承自Activity类

package cn.superyouth.www;import java.io.IOException;import java.util.ArrayList;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import cn.superyouth.www.SYIT_SSJC.ReadHttpGet;import cn.superyouth.www.itools.MarqueeText;import cn.superyouth.www.itools.MenuItem;import cn.superyouth.www.itools.Tools_AppAdapter;import android.annotation.SuppressLint;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import ponentName;import android.content.Intent;import android.graphics.Color;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.text.method.ScrollingMovementMethod;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.GridView;import android.widget.TextView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class SYIT_Index extends Activity {MarqueeText autoScrollTextView;StringBuilder builder = new StringBuilder();public static String WARN_MSG = "";private TextView text = null;boolean isError = false;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);GridView gridview = (GridView) findViewById(R.id.GridView);// 添加菜单ArrayList<MenuItem> map = new ArrayList<MenuItem>();for (int i = 1; i < 10; i++) {if (i == 1) {MenuItem item = new MenuItem();item.title = "实时监测";item.iconId = R.drawable.m1;map.add(item);}if (i == 3) {MenuItem item = new MenuItem();item.title = "预警信息";item.iconId = R.drawable.m2;map.add(item);}if (i == 2) {MenuItem item = new MenuItem();item.title = "视频监控";item.iconId = R.drawable.m3;map.add(item);}if (i == 4) {MenuItem item = new MenuItem();item.title = "统计查询";item.iconId = R.drawable.m4;map.add(item);}if (i == 5) {MenuItem item = new MenuItem();item.title = "灾情上报";item.iconId = R.drawable.m5;map.add(item);}if (i == 6) {MenuItem item = new MenuItem();item.title = "卫星云图";item.iconId = R.drawable.m6;map.add(item);}if (i == 7) {MenuItem item = new MenuItem();item.title = "在线帮助";item.iconId = R.drawable.m7;map.add(item);}if (i == 8) {MenuItem item = new MenuItem();item.title = "气象雷达";item.iconId = R.drawable.m8;map.add(item);}if (i == 9) {MenuItem item = new MenuItem();item.title = "关于我们";item.iconId = R.drawable.m9;map.add(item);}}Tools_AppAdapter adapter = new Tools_AppAdapter(this, map,R.layout.item, new String[] { "ItemImage", "ItemText" },new int[] { R.id.ItemImage, R.id.ItemText }); // 对应R的Idgridview.setAdapter(adapter);// 添加点击事件gridview.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {MenuItem item = (MenuItem) arg0.getItemAtPosition(arg2);// Toast用于向用户显示一些帮助/提示if (item.title.equals("实时监测")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this, SYIT_SSJC.class);startActivity(intent);}if (item.title.equals("预警信息")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this, SYIT_Warning.class);startActivity(intent);}if (item.title.equals("视频监控")) {Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER);// 上面ComponentName有两个参数 第一个参数 :包名 第二个参数:类的命名ComponentName comp = new ComponentName("com.mm.android.direct.gdmssphoneLite","com.mm.android.direct.gdmssphoneLite.SplashActivity");intent.setComponent(comp);intent.setAction("android.intent.action.VIEW");startActivity(intent);}if (item.title.equals("统计查询")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this, SYIT_TJCX.class);startActivity(intent);}if (item.title.equals("灾情上报")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this, SYIT_PictureUpload.class);startActivity(intent);}if (item.title.equals("卫星云图")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this,SYIT_SatelliteCloudChart.class);startActivity(intent);}if (item.title.equals("在线帮助")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this, SYIT_OnlineHelp.class);startActivity(intent);}if (item.title.equals("气象雷达")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this, SYIT_WeatherRadar.class);startActivity(intent);}if (item.title.equals("关于我们")) {Intent intent = new Intent();intent.setClass(SYIT_Index.this, SYIT_AboutUs.class);startActivity(intent);}}});// 开启线程new Thread() {@Overridepublic void run() {try {} catch (Exception e) {isError = true;System.out.println(e.toString());}handler.sendEmptyMessage(0);}}.start();autoScrollTextView = (MarqueeText) findViewById(R.id.textMsg);autoScrollTextView.setTextSize(30);// 点击预警提示信息,进入预警信息页面autoScrollTextView.setOnClickListener(new OnClickListener() {public void onClick(View arg0) {// 进入预警信息页面Intent intent = new Intent(SYIT_Index.this, SYIT_Warning.class);startActivity(intent);}});}/*** 用Handler来更新UI*/private Handler handler = new Handler() {public void handleMessage(Message msg) {if (isError) {// 创建提示Dialog alertDialog = new AlertDialog.Builder(SYIT_Index.this).setTitle("提示").setMessage("服务器无响应,请稍候再试!").setIcon(R.drawable.ic_launcher).create();alertDialog.show();} else {// 获取预警信息new ReadHttpGet3().execute("http://61.190.32.10/CityLowerRoadSys/ashx/yjxx.ashx");}}};@SuppressLint("Override")class ReadHttpGet3 extends AsyncTask<Object, Object, Object> {@Overrideprotected Object doInBackground(Object... params) {HttpGet httpRequest = new HttpGet(params[0].toString());try {HttpClient httpClient = new DefaultHttpClient();HttpResponse httpResponse = httpClient.execute(httpRequest);if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {String strResult = EntityUtils.toString(httpResponse.getEntity());return strResult;} else {return "请求出错";}} catch (ClientProtocolException e) {} catch (IOException e) {e.printStackTrace();}return null;}protected void onCancelled(Object result) {super.onCancelled();}@SuppressLint("Override")@Overrideprotected void onPostExecute(Object result) {super.onPostExecute(result);try {// 创建一个JSON对象JSONObject jsonObject = new JSONObject(result.toString()).getJSONObject("parent");// 获取某个对象的JSON数组JSONArray jsonArray = jsonObject.getJSONArray("children");for (int i = 0; i < jsonArray.length(); i++) {// 新建一个JSON对象,该对象是某个数组里的其中一个对象JSONObject jsonObject2 = (JSONObject) jsonArray.opt(i);builder.append(jsonObject2.getString("name") + "");WARN_MSG += jsonObject2.getString("name") + "";}System.out.println(builder.toString());if (builder.toString().length() == 0) {autoScrollTextView.setTextColor(Color.BLUE);autoScrollTextView.setText("暂无任何预警信息!");} else {autoScrollTextView.setTextColor(Color.RED);autoScrollTextView.setText(builder.toString());}} catch (JSONException e) {e.printStackTrace();}}protected void onPreExecute() {// Toast.makeText(getApplicationContext(),// "开始HTTP GET请求",Toast.LENGTH_LONG).show();}protected void onProgressUpdate(Object... values) {super.onProgressUpdate(values);}}}

===========================================================================

如果觉得对您有帮助,微信扫一扫支持一下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。