Код: Выделить всё
[syntax=java]package ua.fundator.i;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ExpandableListView.OnGroupCollapseListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
import android.widget.SimpleExpandableListAdapter;
import android.widget.Toast;
public class FirstActivity extends Activity {
final String LOG_TAG = "myLogs";
String[] groups = new String[] { "О программе", "Обучение",
"Нормативные акты", "СУОП" };
String[] items_groups_one = new String[] { "Описание", "Предостережение",
"Замечание" };
String[] items_groups_two = new String[] { "Обучение по ОТ",
"Специальное обучение по ОТ", "Инструктажи по ОТ",
"Стажировка и дублирование по ОТ" };
String[] items_groups_three = new String[] { "Положения по ОТ",
"Инструкции по ОТ", "Приказы по ОТ" };
String[] items_groups_four = new String[] { "Планирование",
"Стимулирование", "Руководство" };
int[] png_items_groups_one = { R.drawable.opisanie,
R.drawable.predosterezenie, R.drawable.zamechanie };
// коллекция для групп
ArrayList<Map<String, String>> groupData;
// коллекция для элементов одной группы
ArrayList<Map<String, String>> childDataItem;
// общая коллекция для коллекций элементов
ArrayList<ArrayList<Map<String, String>>> childData;
// в итоге получится childData = ArrayList<childDataItem>
// список атрибутов группы или элемента
Map<String, String> m;
ExpandableListView expListView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
// заполняем коллекцию групп из массива с названиями групп
groupData = new ArrayList<Map<String, String>>();
for (String group : groups) {
// заполняем список атрибутов для каждой группы
m = new HashMap<String, String>();
m.put("groupName", group); // тема
groupData.add(m);
}
// список атрибутов групп для чтения
String groupFrom[] = new String[] { "groupName" };
// список ID view-элементов, в которые будет помещены аттрибуты групп
int groupTo[] = new int[] { android.R.id.text1 };
// создаем коллекцию для коллекций элементов
childData = new ArrayList<ArrayList<Map<String, String>>>();
// создаем коллекцию элементов для первой группы
childDataItem = new ArrayList<Map<String, String>>();
// заполняем список аттрибутов для каждого элемента
for (String item : items_groups_one) {
m = new HashMap<String, String>();
m.put("itemName", item); // раздел темы
childDataItem.add(m);
}
// добавляем в коллекцию коллекций
childData.add(childDataItem);
// создаем коллекцию элементов для второй группы
childDataItem = new ArrayList<Map<String, String>>();
for (String item : items_groups_two) {
m = new HashMap<String, String>();
m.put("itemName", item);
childDataItem.add(m);
}
childData.add(childDataItem);
// создаем коллекцию элементов для третьей группы
childDataItem = new ArrayList<Map<String, String>>();
for (String item : items_groups_three) {
m = new HashMap<String, String>();
m.put("itemName", item);
childDataItem.add(m);
}
childData.add(childDataItem);
// создаем коллекцию элементов для четвертой группы
childDataItem = new ArrayList<Map<String, String>>();
for (String item : items_groups_four) {
m = new HashMap<String, String>();
m.put("itemName", item);
childDataItem.add(m);
}
childData.add(childDataItem);
// список аттрибутов элементов для чтения
String childFrom[] = new String[] { "itemName" };
// список ID view-элементов, в которые будет помещены аттрибуты
// элементов
int childTo[] = new int[] { android.R.id.text1 };
final SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(
this, groupData, R.layout.groups_view, groupFrom, groupTo,
childData, R.layout.items_view, childFrom, childTo);
expListView = (ExpandableListView) findViewById(R.id.expListView);
expListView.setAdapter(adapter);
// нажатие на элемент
expListView.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Log.d(LOG_TAG, "onChildClick groupPosition = " + groupPosition
+ " childPosition = " + childPosition + " id = " + id);
Intent intent = new Intent(FirstActivity.this,
SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
{
for (groupPosition = 0; groupPosition <= groups.length; groupPosition++)
;
{
for (childPosition = 0; childPosition <= items_groups_one.length; childPosition++) {
;
if (groupPosition == 0 && childPosition == 0
&& id == 0) {
intent.putExtra(
SecondActivity.PICTURE_ONE,
png_items_groups_one[R.drawable.opisanie]);
}
else if (groupPosition == 0 && childPosition == 1
&& id == 1) {
intent.putExtra(
SecondActivity.PICTURE_TWO,
png_items_groups_one[R.drawable.predosterezenie]);
}
else if (groupPosition == 0 && childPosition == 2
&& id == 2) {
intent.putExtra(
SecondActivity.PICTURE_THREE,
png_items_groups_one[R.drawable.zamechanie]);
} else {
Toast.makeText(getBaseContext(),
"Алгоритм отсутствует",
Toast.LENGTH_LONG).show();
}
}
}
startActivity(intent);
}
return false;
}
});
// нажатие на группу
expListView.setOnGroupClickListener(new OnGroupClickListener() {
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
Log.d(LOG_TAG, "onGroupClick groupPosition = " + groupPosition
+ " id = " + id);
return false;
}
});
// сворачивание группы
expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
public void onGroupCollapse(int groupPosition) {
Log.d(LOG_TAG, "onGroupCollapse groupPosition = "
+ groupPosition);
}
});
// разворачивание группы
expListView.setOnGroupExpandListener(new OnGroupExpandListener() {
public void onGroupExpand(int groupPosition) {
Log.d(LOG_TAG, "onGroupExpand groupPosition = " + groupPosition);
}
});
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Проверяем ориентацию экрана
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_first, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item_2: {
Intent intent = new Intent(this, ThirdActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
}
default:
return super.onOptionsItemSelected(item);
}
}
public String[] getGroups() {
return groups;
}
public void setGroups(String[] groups) {
this.groups = groups;
}
public String[] getItems_groups_one() {
return items_groups_one;
}
public void setItems_groups_one(String[] items_groups_one) {
this.items_groups_one = items_groups_one;
}
public String[] getItems_groups_two() {
return items_groups_two;
}
public void setItems_groups_two(String[] items_groups_two) {
this.items_groups_two = items_groups_two;
}
public String[] getItems_groups_three() {
return items_groups_three;
}
public void setItems_groups_three(String[] items_groups_three) {
this.items_groups_three = items_groups_three;
}
public String[] getItems_groups_four() {
return items_groups_four;
}
public void setItems_groups_four(String[] items_groups_four) {
this.items_groups_four = items_groups_four;
}
public int[] getPng_items_groups_one() {
return png_items_groups_one;
}
public void setPng_items_groups_one(int[] png_items_groups_one) {
this.png_items_groups_one = png_items_groups_one;
}
public ArrayList<Map<String, String>> getGroupData() {
return groupData;
}
public void setGroupData(ArrayList<Map<String, String>> groupData) {
this.groupData = groupData;
}
public ArrayList<Map<String, String>> getChildDataItem() {
return childDataItem;
}
public void setChildDataItem(ArrayList<Map<String, String>> childDataItem) {
this.childDataItem = childDataItem;
}
public ArrayList<ArrayList<Map<String, String>>> getChildData() {
return childData;
}
public void setChildData(ArrayList<ArrayList<Map<String, String>>> childData) {
this.childData = childData;
}
public Map<String, String> getM() {
return m;
}
public void setM(Map<String, String> m) {
this.m = m;
}
public ExpandableListView getExpListView() {
return expListView;
}
public void setExpListView(ExpandableListView expListView) {
this.expListView = expListView;
}
public String getLOG_TAG() {
return LOG_TAG;
}
}[/syntax]