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

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

Войти
Регистрация
Восстановить пароль
 
Jeka-D
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 14
#1

Авторизация по нажатию кнопки - Программирование Android

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

Привет всем!
В Android Studio создаю приложение с Login Activity. Там есть кнопка для отправки введенных емейл и пароль.
хочу реализовать действие по ее нажатию.
И пришел к такой логике:
Нажимаешь на кнопку
- идет проверка подключения к сети(если подключение отсутствует - выдает ошибку)
- создает в бекграунд поток для подключения к серверу
- берет строковые значения введенные пользователем
- подключается к веб-серверу со пхп скриптом для авторизации и передает ему эти значения
- получает ответ и редиректит на страницу с профилем пользователя (иначе выдает ошибку в зависимости от ответа сервера)
теперь просьба:
подскажите ресурсы для реализации данной логики, в инете нашел кучи инфы(башка уже кипит), пробовал каждый предложенные метод. и фиг! ничего не получается!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2014, 20:34     Авторизация по нажатию кнопки
Посмотрите здесь:

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

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

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

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

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

WebView - не открывается FilePicker по нажатию кнопки - Программирование Android
Всем доброго времени суток. Делаю аппликацию-оболочку для одного сайта. Сделал все как доктор прописал, благо в сети информации полно. ...

Как изменить ссылку по нажатию кнопки? - Программирование Android
Кто подскажет, как тут, по нажатию кнопки менять ссылки? URL feedUrl = null; try { feedUrl = new...

Как создать кнопку по нажатию кнопки? - Программирование Android
Здравствуйте! Меня интересует как создать новый объект (в нашем случае кнопку) по нажатию другой кнопки? Я создал дополнительный класс и...

Создать базу данных по нажатию кнопки - Программирование Android
Есть такой код, как мне сделать так, что бы при нажатии кнопки (метод onClickCreateButton) создавалась база данных с названием равным...

Textview. Изменение текста по нажатию кнопки не происходит - Программирование Android
Добрый день. Подскажите как же реализовывается подобное : в методе onCreat получаем интент с id выбранного элемента на предыдущей...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
12.11.2014, 07:01     Авторизация по нажатию кнопки #2
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.11.2014, 12:31     Авторизация по нажатию кнопки #3

Не по теме:

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



Добавлено через 9 минут
На каком этапе не получается? Как не получается(вылетает, не отрабатывает)?
Jeka-D
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 14
14.11.2014, 18:44  [ТС]     Авторизация по нажатию кнопки #4
Привет еще раз!
Сори за предыдущий вопрос - был пьян и постигал суть задачи, получилось не вопрос, а мысли "вслух"!)
Вот код:
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.RegisterActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.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.RegisterActivity.onCreate(RegisterActivity.java:48)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
************at android.app.ActivityThread.access$600(ActivityThread.java:141)
************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
************at android.os.Handler.dispatchMessage(Handler.java:99)
************at android.os.Looper.loop(Looper.java:137)
************at android.app.ActivityThread.main(ActivityThread.java:5041)
************at java.lang.reflect.Method.invokeNative(Native Method)
************at java.lang.reflect.Method.invoke(Method.java:511)
************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
************at dalvik.system.NativeStart.main(Native Method)

Не могу понять чего оно хочет?
Jeka-D
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 14
14.11.2014, 19:40  [ТС]     Авторизация по нажатию кнопки #5
Цитата Сообщение от 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);
Yandex
Объявления
14.11.2014, 19:40     Авторизация по нажатию кнопки
Ответ Создать тему
Опции темы

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