这个先说点废话,我个人看博客的习惯是,不喜欢代码太长的博客,太长看不完,下次再看不知道从那开始了(哦,记性比较差,),所以一般是一篇里面放两个比较大的类
接上一篇中的用户登录
先说下:
服务器端返回的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;
}
}
最后给出主界面的效果图。
童鞋们,礼拜天快乐,未完待续。。。。。