指尖上的Android之实战篇(五)

这个先说点废话,我个人看博客的习惯是,不喜欢代码太长的博客,太长看不完,下次再看不知道从那开始了(哦,记性比较差,哭),所以一般是一篇里面放两个比较大的类

接上一篇中的用户登录

先说下:

服务器端返回的JSON数据格式如下:

user : tomcat password-->tomcat

登录成功会进入系统的主界面,通过该界面提供的ListView进入各个功能模块

1. 主界面布局文件:main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg" > <TextView android:id="@+id/TextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:layout_marginLeft="5dp" android:textStyle="bold" android:textColor="@color/white" android:text="@string/welcome" android:textSize="18sp" android:layout_marginTop="20dp" /> <ListView android:id="@+id/mainMenu" android:layout_marginTop="40dp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" /> </LinearLayout>

2. 主界面对应的Activity:Main.java

package com.infy.auction.client; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.infy.auction.client.util.ImageAdapter; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.AdapterView; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; public class Main extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub ListView mainMenu; super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); List<Map<String, Object>> datas = this.getDatas(); ImageAdapter adapter = new ImageAdapter(this, datas); mainMenu = (ListView) findViewById(R.id.mainMenu); mainMenu.setAdapter(adapter); // 为ListView的各列表项的单击事件绑定事件监听器 mainMenu.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Intent intent = null; switch (position) { // 查看竟得物品 case 0: // 启动ViewItem Activity // intent.setClass(Main.this,ViewItem.class); // action属性为请求的Servlet地址 intent.putExtra("action", "viewSucc"); startActivity(intent); break; // 查看流拍物品 case 1: // 启动ViewItem的Activity intent = new Intent(Main.this, ViewItem.class); intent.putExtra("action", "ViewFailServlet"); startActivity(intent); break; // 管理物品种类 case 2: // 启动ViewKind的Activity intent = new Intent(Main.this, ManageKind.class); intent.putExtra("action", "ViewKindServlet"); startActivity(intent); break; // 管理物品 case 3: // 启动ManageItem的Activity intent = new Intent(Main.this, ManageItem.class); startActivity(intent); break; } } }); } public List<Map<String, Object>> getDatas() { List<Map<String, Object>> results = new ArrayList<Map<String, Object>>(); String[] items = this.getResources().getStringArray(R.array.menu); for (int i = 0; i < items.length; i++) { Map<String, Object> item = new HashMap<String, Object>(); item.put("left", R.drawable.item_left); item.put("text", items[i]); item.put("right", R.drawable.item_right); results.add(item); } return results; } }


3.这里用到了一个封装ListView的Adapter:ImageAdapter.java

package com.infy.auction.client.util; import java.util.List; import java.util.Map; import com.infy.auction.client.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class ImageAdapter extends BaseAdapter{ private List<Map<String, Object>> datas; private Context context; public ImageAdapter( Context context,List<Map<String, Object>> datas) { this.context = context; this.datas = datas; } @Override public int getCount() { // TODO Auto-generated method stub return this.datas.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return this.datas.get(arg0); } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public View getView(int postion, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if(convertView == null){ holder = new ViewHolder(); convertView =LayoutInflater.from(context).inflate(R.layout.list_item, null); //得到条目中的子组件 holder.itemLeftImage = (ImageView)convertView.findViewById(R.id.item_left); holder.itemText = (TextView)convertView.findViewById(R.id.item_text); holder.itemRithtImage = (ImageView)convertView.findViewById(R.id.item_right); //使用setTag把查找的View缓存起来,方便多次重用 convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } Map<String, Object> item = this.datas.get(postion); //从List对象中为子组件赋值 holder.itemLeftImage.setImageResource(Integer.parseInt(item.get("left").toString())); holder.itemText.setText(item.get("text").toString()); holder.itemRithtImage.setImageResource(Integer.parseInt(item.get("right").toString())); return convertView; } static class ViewHolder{ ImageView itemLeftImage; TextView itemText; ImageView itemRithtImage; } }


最后给出主界面的效果图。

童鞋们,礼拜天快乐,未完待续。。。。。再见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值