Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 14

Авторизация по нажатию кнопки

11.11.2014, 20:34. Показов 2142. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!
В Android Studio создаю приложение с Login Activity. Там есть кнопка для отправки введенных емейл и пароль.
хочу реализовать действие по ее нажатию.
И пришел к такой логике:
Нажимаешь на кнопку
- идет проверка подключения к сети(если подключение отсутствует - выдает ошибку)
- создает в бекграунд поток для подключения к серверу
- берет строковые значения введенные пользователем
- подключается к веб-серверу со пхп скриптом для авторизации и передает ему эти значения
- получает ответ и редиректит на страницу с профилем пользователя (иначе выдает ошибку в зависимости от ответа сервера)
теперь просьба:
подскажите ресурсы для реализации данной логики, в инете нашел кучи инфы(башка уже кипит), пробовал каждый предложенные метод. и фиг! ничего не получается!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2014, 20:34
Ответы с готовыми решениями:

Закрыть активити по нажатию кнопки
Есть код Куда прописать код чтобы я после нажатие кноки отправил данные и вернулся на MainActivity.class p.s. данные отправляет...

Воспроизвести звук по нажатию кнопки
Добрый день! Используя пример, написал приложение, которое по нажатию на кнопку воспроизводит определённый звук. Но загвоздка в том,...

Очищение TextView по нажатию кнопки
Вопрос. Почему не очищается TextView (в данном случае TextView_Print) при нажатии кнопки btn_delete. Пробовал различные способы очищения,...

4
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
12.11.2014, 07:01
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
12.11.2014, 12:31

Не по теме:

Есть стол и на нем ручка. Хочу сделать так, чтобы когда дергаю за ручку открывался ящик. Купил кучу разных инструментов все перепробовал, руки уже болят, но ничего не выходит. :)



Добавлено через 9 минут
На каком этапе не получается? Как не получается(вылетает, не отрабатывает)?
0
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 14
14.11.2014, 18:44  [ТС]
Привет еще раз!
Сори за предыдущий вопрос - был пьян и постигал суть задачи, получилось не вопрос, а мысли "вслух"!)
Вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import org.apache.http.NameValuePair;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
 
public class LoginActivity extends Activity {
 
    public EditText login;
    public EditText pass;
    private ProgressDialog dialog;
    private InputStream is;
    //SecondActivity url;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Button btn = (Button) findViewById(R.id.btnLogin);
        Button reg = (Button) findViewById(R.id.btn_to_register);
        login = (EditText) findViewById(R.id.email_string);
        pass = (EditText) findViewById(R.id.pass_string);
        //Кнопка регистрации
        reg.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(i);
            }
        });
        btn.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
                //указываю куда конектится
                new RequestTask().execute("http://192.168.1.3:81/login.php");
            }
        });
    }
 
    class RequestTask extends AsyncTask<String, String, String> {
 
        @Override
        protected String doInBackground(String... params) {
 
            try {
                //запрос на сервер
                DefaultHttpClient hc = new DefaultHttpClient();
                ResponseHandler<String> res = new BasicResponseHandler();
                //послать post запрос
                HttpPost postMethod = new HttpPost(params[0]);
                //передаю два параметра
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                //передаю параметры из текстбоксов
                //лоигн
                nameValuePairs.add(new BasicNameValuePair("login", login.getText().toString()));
                //пароль
                nameValuePairs.add(new BasicNameValuePair("pass", pass.getText().toString()));
                //собираю в блок и посылаю на сервер
                postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                //получаю ответ от сервера
                String response = hc.execute(postMethod, res);
                if (response != null) {
                    //редирект на вторую активность
                    Intent profile = new Intent(LoginActivity.this, LoginInfo.class);
                    startActivity(profile);
                }
            } catch (Exception e) {
                System.out.println("Exp=" + e);
            }
            return null;
        }      
}
Вот код RegActivity
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import org.apache.http.NameValuePair;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.util.ArrayList;
import java.util.List;
 
public class RegisterActivity extends Activity {
    public EditText email;
    public EditText pass;
    public EditText fullname;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
        Button btnreg = (Button) findViewById(R.id.btn_to_register);
        email = (EditText) findViewById(R.id.reg_email);
        pass = (EditText) findViewById(R.id.reg_password);
        fullname = (EditText) findViewById(R.id.reg_fullname);
        /*TextView loginScreen = (TextView) findViewById(R.id.link_to_login);
        loginScreen.setOnClickListener(new View.OnClickListener() {
 
            public void onClick(View arg0) {
                Intent toLogin = new Intent(RegisterActivity.this, LoginActivity.class );
                startActivity(toLogin);
            }
        });*/
        btnreg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new RegistrTask().execute ("http://192.168.1.3:81/reg.php");
            }
        });
 
    }
    class RegistrTask extends AsyncTask<String, String, String> {
 
        @Override
        protected String doInBackground(String... params) {
 
            try {
                //запрос на сервер
                DefaultHttpClient hc = new DefaultHttpClient();
                ResponseHandler<String> res = new BasicResponseHandler();
                // post запрос
                HttpPost postMethod = new HttpPost(params[0]);
                //передаю 3 параметра
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
                //передаю параметры из текстбоксов
                //Имя
                nameValuePairs.add(new BasicNameValuePair("fullname", fullname.getText().toString()));
                //Email
                nameValuePairs.add(new BasicNameValuePair("email", email.getText().toString()));
                //пароль
                nameValuePairs.add(new BasicNameValuePair("pass", pass.getText().toString()));
                //собираю вместе и посылаю на сервер
                postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                //получаю ответ от сервера
                String response = hc.execute(postMethod, res);
                if(response != null) {
                    //возвращаюсь на логин активити
                    Intent reg_login = new Intent(RegisterActivity.this, LoginActivity.class);
                    startActivity(reg_login);
                }
             } catch (Exception e) {
                System.out.println("Exp=" + e);
            }
            return null;
        }
    }
}
Логин активити нормально компилится, а вот когда я нажимаю на кнопку регистрации или компилю регактивити все СТОПается и выдает ошибки:

1637-1637/com.mixband.testactivity E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mixband.testactivity/com.mixband.testactivity.RegisterActivit y}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunch Activity(ActivityThread.java:2180)
at android.app.ActivityThread.handleLaunchA ctivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(Ac tivityThread.java:141)
at android.app.ActivityThread$H.handleMessa ge(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handl er.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(Activity Thread.java:5041)
at java.lang.reflect.Method.invokeNative(Na tive Method)
at java.lang.reflect.Method.invoke(Method.j ava:511)
at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.mixband.testactivity.RegisterActivit y.onCreate(RegisterActivity.java:48)
at android.app.Activity.performCreate(Activ ity.java:5104)
at android.app.Instrumentation.callActivity OnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunch Activity(ActivityThread.java:2144)
************at android.app.ActivityThread.handleLaunchA ctivity(ActivityThread.java:2230)
************at android.app.ActivityThread.access$600(Ac tivityThread.java:141)
************at android.app.ActivityThread$H.handleMessa ge(ActivityThread.java:1234)
************at android.os.Handler.dispatchMessage(Handl er.java:99)
************at android.os.Looper.loop(Looper.java:137)
************at android.app.ActivityThread.main(Activity Thread.java:5041)
************at java.lang.reflect.Method.invokeNative(Na tive Method)
************at java.lang.reflect.Method.invoke(Method.j ava:511)
************at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:793)
************at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:560)
************at dalvik.system.NativeStart.main(Native Method)

Не могу понять чего оно хочет?
0
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 14
14.11.2014, 19:40  [ТС]
Цитата Сообщение от Jeka-D Посмотреть сообщение
Не могу понять чего оно хочет?
всё, разобрался!
в классе RegisterActivity
в строке
Java
1
 Button btnreg = (Button) findViewById(R.id.btn_to_register);
прописал не правильный ID кнопки, он совпадал со строкой в классе LoginActivity
Java
1
Button reg = (Button) findViewById(R.id.btn_to_register);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.11.2014, 19:40
Помогаю со студенческими работами здесь

Вызов телефона, по нажатию кнопки
Уважаемые, подскажите, как осуществить вызов приложения &quot;Телефон&quot; что бы переходил в раздел клавиатуры, и был введен нужный номер по...

Выключение экрана по нажатию кнопки
Необходимо выключить экран по нажатию кнопки. Пробовал KeyguardManager, но метод KeyguardLock зачеркивается в android studio. Пробовал...

Очистка StringBuilder по нажатию кнопки
Добрый день, подскажите как полностью очистить StringBuilder по нажатию кнопки. // очистка public void cleanClick(View arg0)...

Смена фото по нажатию кнопки
Здравствуйте. Я изучаю програмирование Android не очень давно. Хочу Сделать приложение, которое меняет фото по нажатию кнопки. Как это...

Открытие окна по нажатию кнопки
Подскажите пожалуйста, как сделать так чтоб при нажатии кнопки открывалось данное окно (поверх основного)?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru