Урок 28. Extras - передаем данные с помощью Intent
Re: Урок 28. Extras - передаем данные с помощью Intent
Ничего этого делать не нужно, это все равно что гадать на кофейной гуще. Вначале нужно перенестись в ту строку, где ошибка, и посмотреть на нее. Иначе, зачем тогда логи??
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
Foenix Вы мне всегда интуитивно нравились Чес.слово - кликал. ...но видимо недостаточно уверенно - ничего не открывалось ... Но после Ваших слов открылось ... В общем там было "dbHelper.close();", которого у меня уже нет .. . Я их чистил, но этот как-то просочился ... Теперь все работает .
Re: Урок 28. Extras - передаем данные с помощью Intent
ну магия да, способности есть у меня
Насчет "кликал" не открылось. Кликай всегда на ту строку, где показан адрес в ТВОЕЙ программе, и ПОСЛЕ строчки Caused by .. (что значит "по причине").
Насчет "кликал" не открылось. Кликай всегда на ту строку, где показан адрес в ТВОЕЙ программе, и ПОСЛЕ строчки Caused by .. (что значит "по причине").
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
Похоже. Сегодня с утра я услышал Ваш голос в вебинаре, и первое на что обратил внимание, что он очень похож на тот, который представлялся, когда я читал Ваши реплики на форуме. Это не нормально (изв-те за оффтоп)
Re: Урок 28. Extras - передаем данные с помощью Intent
голос ужасный я послушала в записи только начало и не стала продолжать даже. Слышала, что у многих такое..
Спасибо большое, что посмотрел вебинар, буду рада вопросам если что. Ко мне можно на ты обращаться.
Спасибо большое, что посмотрел вебинар, буду рада вопросам если что. Ко мне можно на ты обращаться.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
Спасибо. Не премину
Re: Урок 28. Extras - передаем данные с помощью Intent
Есть справочник, в котором имеется ссылочное поле на другие элементы этого же справочника, которые трактуются, как родительские элементы элементов, которые содержат такие ссылки. Т.е., имеется многоуровневый иерархический справочник. MainActivity обеспечивает отображение списка и безнес-логику данного справочника. Список справочника (ListView+SimpleCursorAdapter) представляет из себя линейный список, отображающий элементы одного родителя. Абсолютно идентично отображению содержания одного каталога в любом файл-менеджере. Точно также, как в ф.-менеджере должна осуществляться и навигация по уровням справочника (без привлечения treeview): дабл-клик по элементу должен "открывать" этот элемент, как каталог, и в новом списке должны отображаться его дочерние элементы.
Попытался реализовать эту функцию с помощью рекурсивного вызова MainActivity, передавая ей через интент новый ID для формирования нового курсора. Но у меня ничего не вышло. Ошибок не возникает, в дебаге проследил, что вплоть до инициации "новой" Activity ("startActivity(intent);") все переменные получают ожидаемые значения, но после завершения метода вызова Activity посредством интента (на этом этапе в дебаге происходит что-то мне совсем неведомое и я ничего не могу об этом рассказать), программа просто возвращается к следующей строке кода в MainActivity. Список на дисплее, в котором я кликал по элементу, передергивается и остается неизменным.
Я не спрашиваю, что я сделал неправильно, потому что я и не знаю, как это делать и можно ли так делать, - метод тыка не прокатил ... Не мог бы кто-н подсказать, как надо делать?
PS Забыл сказать, что в других местах, например при вызове экрана создания нового элемента, а потом при вызове списка при сохранении этого элемента, или отмены создания элемента, интенты исправно отрабатывают.
Попытался реализовать эту функцию с помощью рекурсивного вызова MainActivity, передавая ей через интент новый ID для формирования нового курсора. Но у меня ничего не вышло. Ошибок не возникает, в дебаге проследил, что вплоть до инициации "новой" Activity ("startActivity(intent);") все переменные получают ожидаемые значения, но после завершения метода вызова Activity посредством интента (на этом этапе в дебаге происходит что-то мне совсем неведомое и я ничего не могу об этом рассказать), программа просто возвращается к следующей строке кода в MainActivity. Список на дисплее, в котором я кликал по элементу, передергивается и остается неизменным.
Я не спрашиваю, что я сделал неправильно, потому что я и не знаю, как это делать и можно ли так делать, - метод тыка не прокатил ... Не мог бы кто-н подсказать, как надо делать?
PS Забыл сказать, что в других местах, например при вызове экрана создания нового элемента, а потом при вызове списка при сохранении этого элемента, или отмены создания элемента, интенты исправно отрабатывают.
Re: Урок 28. Extras - передаем данные с помощью Intent
Как "надо" делать тут будет у каждого свой. Я бы такое делала через фрагменты, добавляя сверху созданный новый фрагмент. В общем, это продумать нужно. А вот рекурсивный вызов ( и тем более главной активити!) мне кажется сомнительным занятием..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
Доброй ночи. Не ожидал сегодня получить ответ. В общем, во-первых, увы, я не знаю, что такое "фрагмент", во-вторых, не понимаю, что такое добавить его сверху (и зачем?). В-третьих, кажется ты не поняла, что мне надо сделать.
MainActivity у меня изначально только тем и занимается, что строит список по указанному ID родителя и обрабатывает события в этом экране. Естественно, что программа начинается с этого списка (с ID_родителя = 0). Ясно, что весь этот функционал должен быть закодирован только в одном куске (экземпляре) кода. У меня таким куском пока является MainActivity. Она же обрабатывает смену родительского ID. А после этого ничего не остается, как только сформировать новый список. Но это тоже ее функция ... То есть, нет сомнений, что самым естественным решением тут была бы рекурсия. Но вот как это реализовать технически (и тянет ли это Java) - я не знаю ...
Отвечать прямо сейчас не обязательно, поздно уже очень (или может ты располагаешься значительно западнее...)?).
MainActivity у меня изначально только тем и занимается, что строит список по указанному ID родителя и обрабатывает события в этом экране. Естественно, что программа начинается с этого списка (с ID_родителя = 0). Ясно, что весь этот функционал должен быть закодирован только в одном куске (экземпляре) кода. У меня таким куском пока является MainActivity. Она же обрабатывает смену родительского ID. А после этого ничего не остается, как только сформировать новый список. Но это тоже ее функция ... То есть, нет сомнений, что самым естественным решением тут была бы рекурсия. Но вот как это реализовать технически (и тянет ли это Java) - я не знаю ...
Отвечать прямо сейчас не обязательно, поздно уже очень (или может ты располагаешься значительно западнее...)?).
Re: Урок 28. Extras - передаем данные с помощью Intent
Я все поняла прекрасно, или ты так объясняешь. Ответ звучит не очень - "не знаю что такое фрагменты и знать не хочу". А ты посмотри, урок по фрагментам имеется. При их использовании будет создан 1 экземпляр MainActivity, как ты, вроде бы, этого и хотел, а не плодиться неизвестно сколько рекурсивно вызванных активити. Даже не представляю как это. Ты уже не первый тут с горячим желанием организовать непременно рекурсию у меня прям дежавю.Mike писал(а):Доброй ночи. Не ожидал сегодня получить ответ. В общем, во-первых, увы, я не знаю, что такое "фрагмент", во-вторых, не понимаю, что такое добавить его сверху (и зачем?). В-третьих, кажется ты не поняла, что мне надо сделать.
Кстати, "дабл-клик" это тоже для андроида не совсем верно
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
Не в том дело, что "... и знать не хочу". Просто слово "фрагмент" я до сих пор воспринимал сугубо как "часть чего-то", а дальше 54-го (кажется) урока, еще не заглядывал и не знал, что и к этому Гугл приложил свою руку. Но теперь заглянул. Окончательные выводы делать рано, но первое впечатление, - очередной костыль типа "setBackground() есть, а getBackground() - нету"(?!). (До версии Android 1.5 (кажется) достать его (бэкграунд) можно было только через "Владивосток", а после, - только через "Хабаровск", но просто по человечески getBackground() как не было так и нет ...)).
Но самое главное, что моя основная версия пока - 2.3.3 ( у меня телефон такой), а Fragment, как я понял, работает только с 3.0 ((( ..., - т.е., не катит (и я не виноват!) ... Но ведь жили как-то без этого ...
Я все еще надеюсь, что мой интент не сработал не по причине какого-то принципиального технического препятствия, а в результате банальной программистской ошибки/недочета, связанных с крайней убогостью моей квалификации. На этот случай выкладываю фрагмент кода в котором вызывается метод newLayer(id), из которого вызывается интент и описание метода. Такого рода ошибки опознаются профи с одного взгляда:
Но самое главное, что моя основная версия пока - 2.3.3 ( у меня телефон такой), а Fragment, как я понял, работает только с 3.0 ((( ..., - т.е., не катит (и я не виноват!) ... Но ведь жили как-то без этого ...
Я все еще надеюсь, что мой интент не сработал не по причине какого-то принципиального технического препятствия, а в результате банальной программистской ошибки/недочета, связанных с крайней убогостью моей квалификации. На этот случай выкладываю фрагмент кода в котором вызывается метод newLayer(id), из которого вызывается интент и описание метода. Такого рода ошибки опознаются профи с одного взгляда:
Код: Выделить всё
public class MainActivity extends Activity implements OnClickListener {
.........
protected void onCreate(Bundle savedInstanceState) {
.........
//Формирую список по входящим параметрам
// получаю из Intent текущее МХ и объект
Intent intent = getIntent();
if (intent.hasExtra("selectedItemId") != false){
intCurStorPlaceId = intent.getIntExtra("intCurStorPlaceId", 0);
int selectedItemId = intent.getIntExtra("selectedItemId", 0);
fullPathStorPlace = intent.getStringExtra("fullPathStorPlace");
} else {
fullPathStorPlace = "Начальные Места хранения";
}
..........
lvMain.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (viewOld != null) {
viewOld.setBackgroundColor(intBackgroundColor);
Log.d(LOG_TAG, "viewOld: position = " + position + ", id = "
+ id);
if (viewOldPosition == position) {
//т.е., дабл-клик
newLayer(id);
}
};
view.setBackgroundColor(Color.LTGRAY);
Log.d(LOG_TAG, "itemClick: position = " + position + ", id = "
+ id);
viewOld = view;
viewOldPosition = position;
}
}
)
}
public void newLayer(long idCurItem) {
//вычисляются переменные для подстановки в интент
.................
-- Я додумался и безрезультатно пытался здесь заранее создать какой-то новый экземпляр MainActivity, но не рискну показывать, как я это делал (потому как без понятия, как это делается, а аналогов не нашел ...). Но обращаю внимание, что это как-то перекликается с твоим советом использовать фрагменты, хотя я тогда о них ничего не знал! Так может быть в этом и дело - просто грамотно создать этот экземпляр и подставить его вместо "MainActivity.class"? Вдруг получится :)? А если получится, то потом можно будет подумать и о том, как убить предыдущую, если она сама не захочет уйти. Напиши мне, плз, эту строчечку, и я попробую. (как программист удовлетворительно знаю только два метода: 1. copy-paste и 2. метод "тыка" (((, - но я не программист и не претендую ...):
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("intCurStorPlaceId", intCurStorPlaceId);
intent.putExtra("fullPathStorPlace", fullPathStorPlace);
intent.putExtra("key", "wClick");
Log.d(LOG_TAG, "M1 intent"); //до этого места все тип-топ
startActivity(intent);
};
}
Re: Урок 28. Extras - передаем данные с помощью Intent
support library есть, поэтому юзаются везде. А выводы ты про них рано сделал)
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
вот те строчки что там написаны, целый абзац, это просто ай-ай-ай и безобразие..как убить предыдущую, если она сама не захочет уйти.
люди, ну скажите же, что тут нужны фрагменты.. это ведь как раз тот самый случай..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
ладно-ладно, пойду разбираться с фрагментами. Но хочу заметить, что при смене ориентации MainActivity спокойно перегружается и это никого не приводит в ужас ... Несправедливо...
Re: Урок 28. Extras - передаем данные с помощью Intent
Люди помогите. не могу вкурить почему приложение останавливается... пытаюсь передать число из одной активити в другую. принимаю вот почему приложение останавливается и х не передается?
Код: Выделить всё
x = x + 1;
Intent intent = new Intent(this, Result.class);
intent.putExtra("x", x);
startActivity(intent);
Код: Выделить всё
Intent intent = getIntent();
int x = intent.getIntExtra("x", 0);
tv = (EditText)findViewById(R.id.tv);
tv.setText(x);
Re: Урок 28. Extras - передаем данные с помощью Intent
экстрасенсов тут нету. Ты лог смотрел?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
ну пока этой строчки не было все работает. может быть я не правильно передаю значение переменной? объясните как правильно передать переменную из активити main в активити resultat.Foenix писал(а):экстрасенсов тут нету. Ты лог смотрел?
Re: Урок 28. Extras - передаем данные с помощью Intent
в логе все написано.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 28. Extras - передаем данные с помощью Intent
не знаю как правильно прикреплять лог ... https://drive.google.com/file/d/0BxZRVO ... sp=sharing вот он на ссылке будет, можно?Foenix писал(а):в логе все написано.
PS научите прикреплять логи)
сам код такой
Код: Выделить всё
public class MainActivity extends Activity implements OnClickListener {
int x = 0;
Button btn1;
Button btn2;
Button btn3;
Button btn4;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn4 = (Button) findViewById(R.id.btn4);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.btn1:
Toast.makeText(this, "Верно", Toast.LENGTH_LONG).show();
x = x + 1;
Intent intent = new Intent(this, Result.class);
intent.putExtra("x", x);
startActivity(intent);
break;
case R.id.btn2:
Toast.makeText(this, "Не Верно", Toast.LENGTH_LONG).show();
Intent intent1 = new Intent(this, Two.class);
startActivity(intent1);
break;
case R.id.btn3:
Toast.makeText(this, "Не Верно", Toast.LENGTH_LONG).show();
Intent intent2 = new Intent(this, Two.class);
startActivity(intent2);
break;
case R.id.btn4:
Toast.makeText(this, "Не Верно", Toast.LENGTH_LONG).show();
Intent intent3 = new Intent(this, Two.class);
startActivity(intent3);
break;
};
};
Код: Выделить всё
public class Result extends Activity {
EditText tv;
int x;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Intent intent = getIntent();
int x = intent.getIntExtra("x", 0);
tv = (EditText)findViewById(R.id.tv);
tv.setText(x);
}
Re: Урок 28. Extras - передаем данные с помощью Intent
Выделяешь как обычно ВСЕ КРАСНЫЕ СТРОЧКИ в логе, дальше ctrl+C, и тут ctrl+V
а то просишь лог, вначале не понимают, потом наконец-то вставляют сюда 1 какую-нибудь строчку, потом три, потом только целиком!
а то просишь лог, вначале не понимают, потом наконец-то вставляют сюда 1 какую-нибудь строчку, потом три, потом только целиком!
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198