Помогите разобраться с передачей данных в ExpandableListView

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Помогите разобраться с передачей данных в ExpandableListView

Сообщение fundator » 06 сен 2013, 19:08

Доброго дня! Помогите, пожалуйста, понять почему при передаче данных (картинок) из FirstActivity в SecondActivity при нажатии на любой из айтемов в любой из открытых групп древовидного списка происходит передача только последней картинки? А все остальные игнорируются!
код из FirstActivity

Код: Выделить всё

[syntax=java]// нажатие на элемент
		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,
										png_items_groups_one[R.drawable.opisanie]);
							}

							else if (groupPosition == 0 && childPosition == 1
									&& id == 1) {
								intent.putExtra(
										SecondActivity.PICTURE,
										png_items_groups_one[R.drawable.predosterezenie]);
							}

							else if (groupPosition == 0 && childPosition == 2
									&& id == 2) {
								intent.putExtra(
										SecondActivity.PICTURE,
										png_items_groups_one[R.drawable.zamechanie]);
							} 
						}
					}

					startActivity(intent);
				}

				return false;
			}
		});[/syntax]
код из SecondActivity

Код: Выделить всё

[syntax=java]public class SecondActivity extends FirstActivity implements OnClickListener {
	public static final String PICTURE = "picture";

	/** Called when the activity is first created. */

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		// Получаем данные от деятельности FirstActivity
		Intent intent = getIntent();
		ImageView image = (ImageView) findViewById(R.id.aboutImage);

		int imageId = intent.getIntExtra(PICTURE, R.drawable.opisanie);
		int imageIdd = intent.getIntExtra(PICTURE, R.drawable.predosterezenie);
		int imageIddd = intent.getIntExtra(PICTURE, R.drawable.zamechanie);

		image.setImageDrawable(getResources().getDrawable(imageId));
		image.setImageDrawable(getResources().getDrawable(imageIdd));
		image.setImageDrawable(getResources().getDrawable(imageIddd));

	}
[/syntax]
Помогите понять в чём ошибка. Заранее спасибо!

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 06 сен 2013, 23:31

так ты ж их под одним именем туда фигачишь SecondActivity.PICTURE, смени имя двум другим картинкам
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 07 сен 2013, 14:59

Нет. Не помогло. Сменил имена и добавил последнее условие с всплывающим сообщением "Алгоритм отсутствует", ну в случае нажатия на незаполненный айтем в другой группе. Так в SecondActivity стало одновременно выводить вместе с последней картинкой ещё и всплывающее сообщение (при любом нажатом айтеме).

код из FirstActivity

Код: Выделить всё

[syntax=java] // нажатие на элемент
		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;
			}
		});

[/syntax]

код из SecondActivity

Код: Выделить всё

[syntax=java]  public static final String PICTURE_ONE = "picture_one";
	public static final String PICTURE_TWO = "picture_two";
	public static final String PICTURE_THREE = "picture_three";

	/** Called when the activity is first created. */

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		// Получаем данные от деятельности FirstActivity
		Intent intent = getIntent();
		ImageView image = (ImageView) findViewById(R.id.aboutImage);

		int imageId = intent.getIntExtra(PICTURE_ONE, R.drawable.opisanie);
		int imageIdd = intent.getIntExtra(PICTURE_TWO, R.drawable.predosterezenie);
		int imageIddd = intent.getIntExtra(PICTURE_THREE, R.drawable.zamechanie);

		image.setImageDrawable(getResources().getDrawable(imageId));
		image.setImageDrawable(getResources().getDrawable(imageIdd));
		image.setImageDrawable(getResources().getDrawable(imageIddd));

	}[/syntax]

P.S. Может есть ссылка на какой нибудь проект с ExpandableListView с работающей передачей данных. Измучился вконец! Месяц уже упираюсь рогами в эту проблему...
Последний раз редактировалось fundator 07 сен 2013, 17:45, всего редактировалось 1 раз.

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 07 сен 2013, 16:38

та код отформатируй, ну не разобраться же
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 07 сен 2013, 17:32

Код: Выделить всё

[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]
Последний раз редактировалось fundator 07 сен 2013, 17:42, всего редактировалось 1 раз.

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 07 сен 2013, 17:32

Код: Выделить всё

[syntax=java]package ua.fundator.i;

import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

public class SecondActivity extends FirstActivity implements OnClickListener {
	public static final String PICTURE_ONE = "picture_one";
	public static final String PICTURE_TWO = "picture_two";
	public static final String PICTURE_THREE = "picture_three";

	/** Called when the activity is first created. */

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		// Получаем данные от деятельности FirstActivity
		Intent intent = getIntent();
		ImageView image = (ImageView) findViewById(R.id.aboutImage);

		int imageId = intent.getIntExtra(PICTURE_ONE, R.drawable.opisanie);
		int imageIdd = intent.getIntExtra(PICTURE_TWO, R.drawable.predosterezenie);
		int imageIddd = intent.getIntExtra(PICTURE_THREE, R.drawable.zamechanie);

		image.setImageDrawable(getResources().getDrawable(imageId));
		image.setImageDrawable(getResources().getDrawable(imageIdd));
		image.setImageDrawable(getResources().getDrawable(imageIddd));

	}

	@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_second, menu);
		return true;
	}

	public void onClick(View v) {
		finish();
	}

	@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 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;

		}
		case R.id.item_1: {
			Intent intent = new Intent(this, FirstActivity.class);
			intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			startActivity(intent);
			return true;
		}
		default:
			return super.onOptionsItemSelected(item);

		}
	}

	public static String getPictureOne() {
		return PICTURE_ONE;
	}

	public static String getPictureTwo() {
		return PICTURE_TWO;
	}

	public static String getPictureThree() {
		return PICTURE_THREE;
	}

}[/syntax]
Последний раз редактировалось fundator 07 сен 2013, 17:43, всего редактировалось 1 раз.

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 07 сен 2013, 17:34

По сообщению на каждое активити.

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 07 сен 2013, 21:30

ну а лог дай, который у тебя выпечатывается-то
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 07 сен 2013, 21:32

и на 146 строке 1 активити убери точку с запятой, у тебя там цикл пустой, поэтому он не отрабатывает.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 07 сен 2013, 21:33

и на 143 зачем скобка? соответсвенно закрывающая тоже лишняя.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 08 сен 2013, 14:06

После исправления 143 и 146 строк лог пишет:
  • 09-08 07:11:21.010: D/dalvikvm(945): GC_FOR_ALLOC freed 48K, 6% free 2690K/2844K, paused 76ms, total 82ms
    09-08 07:11:21.030: I/dalvikvm-heap(945): Grow heap (frag case) to 3.333MB for 635812-byte allocation
    09-08 07:11:21.130: D/dalvikvm(945): GC_FOR_ALLOC freed 2K, 5% free 3308K/3468K, paused 98ms, total 98ms
    09-08 07:11:21.710: I/Choreographer(945): Skipped 91 frames! The application may be doing too much work on its main thread.
    09-08 07:11:21.810: D/gralloc_goldfish(945): Emulator without GPU emulation detected.
    09-08 07:11:22.151: I/Choreographer(945): Skipped 37 frames! The application may be doing too much work on its main thread.
    09-08 07:11:24.730: D/myLogs(945): onGroupClick groupPosition = 0 id = 0
    09-08 07:11:24.781: D/myLogs(945): onGroupExpand groupPosition = 0
    09-08 07:11:25.010: W/Resources(945): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f080002}
    09-08 07:11:25.180: W/Resources(945): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f080002}
    09-08 07:11:25.220: W/Resources(945): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f080002}
    09-08 07:11:26.670: D/myLogs(945): onChildClick groupPosition = 0 childPosition = 0 id = 0
    09-08 07:11:26.701: D/AndroidRuntime(945): Shutting down VM
    09-08 07:11:26.701: W/dalvikvm(945): threadid=1: thread exiting with uncaught exception (group=0x41465700)
    09-08 07:11:26.900: E/AndroidRuntime(945): FATAL EXCEPTION: main
    09-08 07:11:26.900: E/AndroidRuntime(945): java.lang.ArrayIndexOutOfBoundsException: length=3; index=2130837508
    09-08 07:11:26.900: E/AndroidRuntime(945): at ua.fundator.i.FirstActivity$1.onChildClick(FirstActivity.java:153)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.widget.ExpandableListView.handleItemClick(ExpandableListView.java:712)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.widget.ExpandableListView.performItemClick(ExpandableListView.java:651)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.widget.AbsListView$1.run(AbsListView.java:3463)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.os.Handler.handleCallback(Handler.java:730)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.os.Handler.dispatchMessage(Handler.java:92)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.os.Looper.loop(Looper.java:137)
    09-08 07:11:26.900: E/AndroidRuntime(945): at android.app.ActivityThread.main(ActivityThread.java:5103)
    09-08 07:11:26.900: E/AndroidRuntime(945): at java.lang.reflect.Method.invokeNative(Native Method)
    09-08 07:11:26.900: E/AndroidRuntime(945): at java.lang.reflect.Method.invoke(Method.java:525)
    09-08 07:11:26.900: E/AndroidRuntime(945): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
    09-08 07:11:26.900: E/AndroidRuntime(945): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    09-08 07:11:26.900: E/AndroidRuntime(945): at dalvik.system.NativeStart.main(Native Method)
Как я понимаю обращение за границы массива. Но где? В каком месте?
Нажатие на первый айтем первой группы (onChildClick groupPosition = 0 childPosition = 0 id = 0).
Второй соответственно (onChildClick groupPosition = 0 childPosition = 1 id = 1).
И третьей (onChildClick groupPosition = 0 childPosition = 2 id = 2).
Или я не прав?

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 08 сен 2013, 19:00

вот сюда двойной щелчок
at ua.fundator.i.FirstActivity$1.onChildClick(FirstActivity.java:153)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 08 сен 2013, 19:34

Выделило вот эту строку: png_items_groups_one[R.drawable.opisanie]);
Ну и что это значит?

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 08 сен 2013, 19:42

Я одного не понимаю - этож 46 урок из startandroid.ru. Он, что реализует древовидный список с которым нельзя работать? Так сказать "Вещь в себе"???!

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 08 сен 2013, 20:22

конечно, у тебя там глупость написана - ты заполнил массив png_items_groups_one тремя элементами из R. А затем хочешь передать какой-то элемент (вернее его целочисленную интерпретацию) в другую активити. Так и нужно его индекс брать! Вот у тебя и ошибку выдает, у тебя всего три элемента в массиве, а ты туда запихиваешь вместо цифр 0 1 или 2 совершенно безумное целое число, которое в R 2130837508!!
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 08 сен 2013, 20:23

fundator писал(а):Я одного не понимаю - этож 46 урок из startandroid.ru. Он, что реализует древовидный список с которым нельзя работать? Так сказать "Вещь в себе"???!
у тебя от того урока рожки да ножки, ошибки-то идут вовсе не в тех строчках, которые в уроке представлены.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 09 сен 2013, 18:19

Ничего не понял. И где этот индекс взять?

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 09 сен 2013, 21:27

разбери работу с массивами по какому-нибудь учебнику.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение fundator » 10 сен 2013, 13:10

Чтож, спасибо за желание помочь. Буду копать сам.

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Помогите разобраться с передачей данных в ExpandableList

Сообщение Foenix » 10 сен 2013, 17:19

только не обижайся, просто работа с массивами - это ж основы! там все просто - как объявить, как обратиться к элементу, в любом учебнике по программированию это есть.. это не надо "копать" это просто нужно знать
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить