指尖上的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、付费专栏及课程。

余额充值