package com.bigfat.treeview;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import com.bigfat.treeview.adpter.SimpleTreeListViewAdapter;
import com.bigfat.treeview.bean.FileBean;
import com.bigfat.treeview.bean.OrgBean;
import com.bigfat.treeview.utils.Node;
import com.bigfat.treeview.utils.listener.OnTreeListViewItemClickListener;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends ActionBarActivity {
private ListView mListView;
private SimpleTreeListViewAdapter<OrgBean> mAdapter;
private List<FileBean> mDatas;
private List<OrgBean> mDatas2;
/**
* 默认展开层级
*/
public static final int DEFAULT_EXPAND_LEVEL = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDatas();
mListView = (ListView) findViewById(R.id.id_listView);
try {
mAdapter = new SimpleTreeListViewAdapter<>(MainActivity.this, mDatas2, DEFAULT_EXPAND_LEVEL);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
mListView.setAdapter(mAdapter);
mListView.setOnItemClickListener(mAdapter);
mAdapter.setOnTreeListViewItemClickListener(new OnTreeListViewItemClickListener() {
@Override
public void onClick(Node node, int position) {
if (node.isLeaf()) {
Toast.makeText(MainActivity.this, node.getName(), Toast.LENGTH_SHORT).show();
}
}
});
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
final EditText editText = new EditText(MainActivity.this);
new AlertDialog.Builder(MainActivity.this).setTitle("Add Node").setView(editText).setPositiveButton("Sure", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (TextUtils.isEmpty(editText.getText().toString())) {
Toast.makeText(MainActivity.this, "添加项不能为空", Toast.LENGTH_SHORT).show();
}
mAdapter.addExtraNode(position, editText.getText().toString());
}
}).setNegativeButton("Cancel", null).show();
return true;
}
});
}
private void initDatas() {
mDatas = new ArrayList<>();
FileBean fileBean = new FileBean(1, 0, "根目录1");
mDatas.add(fileBean);
fileBean = new FileBean(2, 0, "根目录2");
mDatas.add(fileBean);
fileBean = new FileBean(3, 0, "根目录3");
mDatas.add(fileBean);
fileBean = new FileBean(4, 1, "根目录1-1");
mDatas.add(fileBean);
fileBean = new FileBean(5, 1, "根目录1-2");
mDatas.add(fileBean);
fileBean = new FileBean(6, 5, "根目录1-2-1");
mDatas.add(fileBean);
fileBean = new FileBean(7, 3, "根目录3-1");
mDatas.add(fileBean);
fileBean = new FileBean(8, 3, "根目录3-2");
mDatas.add(fileBean);
mDatas2 = new ArrayList<>();
OrgBean orgBean = new OrgBean(1, 0, "根目录1");
mDatas2.add(orgBean);
orgBean = new OrgBean(2, 0, "根目录2");
mDatas2.add(orgBean);
orgBean = new OrgBean(3, 0, "根目录3");
mDatas2.add(orgBean);
orgBean = new OrgBean(4, 1, "根目录1-1");
mDatas2.add(orgBean);
orgBean = new OrgBean(5, 1, "根目录1-2");
mDatas2.add(orgBean);
orgBean = new OrgBean(6, 5, "根目录1-2-1");
mDatas2.add(orgBean);
orgBean = new OrgBean(7, 3, "根目录3-1");
mDatas2.add(orgBean);
orgBean = new OrgBean(8, 3, "根目录3-2");
mDatas2.add(orgBean);
}
}