Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
#1

Передать String-путь в EditText AlertDialog'a ? - Программирование Android

19.02.2015, 12:27. Просмотров 1251. Ответов 28
Метки нет (Все метки)

Вызывается Алерт диалог, в нем кнопка выбора файла, выбираем файл, получаем его путь,

Java
1
String FilePath = intent.getData().getPath();
в Log.d путь пишет,
в этом же диалоге есть поле EditText, в него этот путь надо поместить:

делаю как-то так:

Java
1
edittext.setText(FilePath);
но такой вариант почему-то не проходит(ошибка), (не знаю где конкретно это должно быть), и постоянно ругается на эту строчку, а как все-таки надо подскажите ПОЖАЛУЙСТА?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
19.02.2015, 22:34  [ТС]     Передать String-путь в EditText AlertDialog'a ? #16
А они нигде не вызываются...как тогда происходит запуск этих новых активностей?
забанил все лишние онклики.. на всякий случай...

at com.cribactivity.DB_Activity.onCreateDialog(DB_Activity.java:501)
at com.cribactivity.DB_Activity.onclickB(DB_Activity.java:436)
Добавлено через 55 минут
Armagedo, когда появляется диалог там 3 кнопки одна из них onkl2:

Java
1
2
3
4
5
6
7
public void onkl2(View view) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(intent, 5);
 
        }
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
19.02.2015, 22:52     Передать String-путь в EditText AlertDialog'a ? #17
Цитата Сообщение от disx Посмотреть сообщение
Armagedo, когда появляется диалог там 3 кнопки одна из них onkl2:
Кнопки - это баттоны и они объявлены
Java
1
Button btnCancel, buttonPick, make, select, write;
и из них на форме диалога находятся make, select, write

Java
1
2
3
make=(Button)findViewById(R.id.buttonD1);
                select=(Button)findViewById(R.id.buttonD2);
                write=(Button)findViewById(R.id.buttonD3);

А onkl1, onkl2, onkl3 - это методы класса DB_Activity, которые в указанном коде ни разу и ни откуда не вызываются.
Поэтому я и спрашиваю - где происходит запуск других активностей...
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
20.02.2015, 09:17     Передать String-путь в EditText AlertDialog'a ? #18
Armagedo,
Цитата Сообщение от Armagedo Посмотреть сообщение
А onkl1, onkl2, onkl3 - это методы класса DB_Activity, которые в указанном коде ни разу и ни откуда не вызываются.
да в разметке по всей видимости у него на батонах явно прописаны вызовы этих методов
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
20.02.2015, 11:00  [ТС]     Передать String-путь в EditText AlertDialog'a ? #19
Поэтому я и спрашиваю - где происходит запуск других активностей...
В диалоге (в layout диалога указаны эти самые кнопки make, select, write, по кнопке select вызывается onkl2)

Добавлено через 1 час 42 минуты
Armagedo, обнаружил что путь передается таким же способом et.setText(FilePath) в текстовое поле основного активити, таким образом было решено упростить диалог до наличия трех кнопок (make, select, write), и автовыхода из него.

т.е. так и не понял почему не работает изначальный вариант а вось бы пригодилось, но СПАСИБО ЗА БОЙ!


З.Ы. хотелось бы узнать ПОЧЕМУ?
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
20.02.2015, 11:29     Передать String-путь в EditText AlertDialog'a ? #20
Цитата Сообщение от disx Посмотреть сообщение
З.Ы. хотелось бы узнать ПОЧЕМУ?
Та хз

Правда, меня настораживает еще один момент.
Почему при создании диалога этот диалог там же и убивается?

Java
1
2
3
4
5
6
7
8
9
10
protected Dialog onCreateDialog(int id) {
 
            switch (id) {
            case DIALOG_EXIT:
...
                builder.setCancelable(true);
                removeDialog(id);
                return builder.create();
...  
        }
Тока голова появилась, а её рррраз и шашкой.
На всякий случай?

P.S. Так, а шо там за ошибку выдаёт?
Ты нам раскроешь секрет?
ГДЕ эта ошибка возникает, в каком методе - мы уже поняли.
Хотелось бы увидеть, что это за ошибка.
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
20.02.2015, 11:44  [ТС]     Передать String-путь в EditText AlertDialog'a ? #21
Armagedo,
Почему при создании диалога этот диалог там же и убивается
ошибка в коде походу,.... в генетическом...


Хотелось бы увидеть, что это за ошибка
Простите, я походу не врубаюсь, но где ее узреть?

может это "The application Crib(process com.cribactivity) has stopped unexpectedly. Please try again."
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
20.02.2015, 11:53     Передать String-путь в EditText AlertDialog'a ? #22
Цитата Сообщение от disx Посмотреть сообщение
Простите, я походу не врубаюсь, но где ее узреть?
В логах перед тем, где указано ГДЕ возникла ошибка
at com.cribactivity.DB_Activity.onCreateDialog(DB_Activity.java:501)
at com.cribactivity.DB_Activity.onclickB(DB_Activity.java:436)
должно быть ее описание
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
20.02.2015, 13:01  [ТС]     Передать String-путь в EditText AlertDialog'a ? #23
Armagedo,
Почему при создании диалога этот диалог там же и убивается?
ошибка в коде наверное...., в генетическом....

Хотелось бы увидеть, что это за ошибка
ну вот такое: "The application Crib (process com.cribactivity) has stopped unexpectedly. Please try again."

Добавлено через 44 минуты
Armagedo,
Java
1
2
3
4
threadid=1: thread exiting with uncaught exception (group=0x40015560)
FATAL EXCEPTION: main
java.lang.NullPointerException
at com.cribactivity.DB_Activity.onCreateDialog(DB_Activity.java:427)
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
20.02.2015, 13:08     Передать String-путь в EditText AlertDialog'a ? #24
Цитата Сообщение от disx Посмотреть сообщение
java.lang.NullPointerException
at com.cribactivity.DB_Activity.onCreateDialog(DB_Activity.java:427)
какой код в строке 427?

P.S. Мой энтузиазм гаснет на глазах
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
20.02.2015, 13:23  [ТС]     Передать String-путь в EditText AlertDialog'a ? #25
Armagedo,
какой код в строке 427?
Java
1
textPath.setText(FilePath);
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
20.02.2015, 13:34     Передать String-путь в EditText AlertDialog'a ? #26
Ну, так посмотри textPath вообще "существует" или нет?

Замени
Java
1
textPath.setText(FilePath);
на

Java
1
2
3
4
if (textPath!=null)
            textPath.setText(FilePath);
else
    Toast.makeText(getBaseContext(), "EditText textPath is null", Toast.LENGTH_LONG).show();
Что выдаст?
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
20.02.2015, 14:54  [ТС]     Передать String-путь в EditText AlertDialog'a ? #27
Armagedo,

Что выдаст?
как только запускается сам диалог, сразу выдает тост:
EditText textPath is null
оно вроде как и логично потому как, FilePath еще пустой, мы же не вызвали еще onkl2 (кнопка select в диалоге)чтобы получить путь...

Добавлено через 7 минут
если вставляю в onActivityResult, тоже тост, когда нажимаешь уже на кнопку select.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
20.02.2015, 15:13     Передать String-путь в EditText AlertDialog'a ? #28
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну, вот тебе и ответ - EditText c идентификатором R.id.editTextPath в XML файле db_activity.xml не найден...

Почему в файле db_activity.xml, а не dial2.xml?

НУ, потому, что ты вызываешь метод findViewById для активити, а он ищет в лэйауте указанном в setContentView(int) события onCreate() активити.

Ставлю 99 против 1, что и все остальные переменные, полученные тем же способом
Java
1
2
3
4
5
6
make=(Button)findViewById(R.id.buttonD1);
select=(Button)findViewById(R.id.buttonD2);
write=(Button)findViewById(R.id.buttonD3);
View root = inflater.inflate(R.layout.dial2, null);
TextView text=(TextView)findViewById(R.id.textDF);
textPath = (EditText) findViewById(R.id.editTextPath);
тоже пустышки.

Можешь проверить, вставив после такого поиска

Java
1
2
3
4
5
6
7
Toast.makeText(getBaseContext(), 
"Button 'make'  is null: " + String.valueOf((make==null))+"\n"+
"Button 'select'  is null: " + String.valueOf((select==null))+"\n"+               
"Button 'write'  is null: " + String.valueOf((write==null))+"\n"+  
"TextView 'text'  is null: " + String.valueOf((text==null))+"\n"+                            
"EditText 'textPath' is null:  "+String.valueOf((textPath==null)), 
Toast.LENGTH_LONG).show();
и получишь все утверждения true.

Как исправить, думаю, теперь понятно

И переменная FilePath - вообще ни при делах.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2015, 16:19     Передать String-путь в EditText AlertDialog'a ?
Еще ссылки по теме:
AlertDialog Android
Android TextView а AlertDialog
Android Закрытие AlertDialog
Android AlertDialog и RadioGroup
Android Spinner в AlertDialog

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 535
Записей в блоге: 1
20.02.2015, 16:19  [ТС]     Передать String-путь в EditText AlertDialog'a ? #29
Armagedo, АрЁл..., сразу видно 5 лет института,... а я Алень слепой нифига про этот root не подумал...

РЕСПЕКТИЩЕ тебе!, сделал так и все как по маслу заработало:

Java
1
2
3
4
5
6
7
8
9
LayoutInflater inflater = LayoutInflater.from(this);
                View root = inflater.inflate(R.layout.dial2, null);
                make=(Button)root.findViewById(R.id.buttonD1);
                select=(Button)root.findViewById(R.id.buttonD2);
                write=(Button)root.findViewById(R.id.buttonD3);
                
                TextView text=(TextView)root.findViewById(R.id.textDF);
                textPath = (EditText) root.findViewById(R.id.editTextPath);
                textPath.setText(FilePath);
P/S/ пора создавать новую тему
Yandex
Объявления
20.02.2015, 16:19     Передать String-путь в EditText AlertDialog'a ?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru