Android 经典示例源码(一)

2014-11-24 12:05:07 · 作者: · 浏览: 8



package com.cmw.android.widgets;


import java.util.ArrayList;
import java.util.List;


import android.app.ListActivity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


import com.cmw.android.data.TreeDataProvider;
import com.cmw.android.model.TreeElement;


public class MainFrameActivity extends ListActivity{
private List nodes = new ArrayList();
private TreeViewAdapter treeViewAdapter = null;
private TreeDataProvider provider = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
provider = new TreeDataProvider(this);
nodes = provider.getDataSource();
treeViewAdapter = new TreeViewAdapter(this, R.layout.mainframe,nodes);
setListAdapter(treeViewAdapter);
registerForContextMenu(getListView());
}


@SuppressWarnings("unchecked")
private class TreeViewAdapter extends ArrayAdapter {
public TreeViewAdapter(Context context, int textViewResourceId,
List objects) {
super(context, textViewResourceId, objects);
mInflater = LayoutInflater.from(context);
mfilelist = objects;
mIconCollapse = BitmapFactory.decodeResource(
context.getResources(), R.drawable.plus);
mIconExpand = BitmapFactory.decodeResource(context.getResources(),
R.drawable.cut);
}

private LayoutInflater mInflater;
private List mfilelist;
private Bitmap mIconCollapse;
private Bitmap mIconExpand;

public int getCount() {
return mfilelist.size();
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
convertView = mInflater.inflate(R.layout.mainframe, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.treetext);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);

final TreeElement obj = mfilelist.get(position);

holder.text.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Log.i("TreeView", "obj.id:" + obj.getId());
obj.forward(MainFrameActivity.this);
}
});

int level = obj.getLevel();
holder.icon.setPadding(25 * (level + 1),
holder.icon.getPaddingTop(), 0,
holder.icon.getPaddingBottom());
holder.text.setText(obj.getTitle());
if (obj.isHasChild()&& (obj.isExpanded() == fals