Форум программистов, компьютерный форум, киберфорум
Наши страницы

Обращение к MySQL - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Запись данных с использованием массива http://www.cyberforum.ru/android-dev/thread1496595.html
Всем привет! Столкнулся с некорректной записью данных в файл и не могу додуматься, как решить проблему. Суть в следующем: из сети загружаются числовые значения (всего около 300). Для примера, 543,...
Программирование Android Получить crash reports Добрый день, товарищи форумчане! Наконец то пришло желание, а самое главное время, получать crash report'ы... Мне на данный момент видится два пути: 1. При падении приложения, сохранять лог... http://www.cyberforum.ru/android-dev/thread1496581.html
Программирование Android Литература по дизайну интерфейсов
Всем доброго дня! Народ, имеется возможность заказать на работе книги по дизайну интерфейсов. Может ли кто-нибудь что-нибудь посоветовать?
Строка addTestDevice() Программирование Android
Гугл просит на стадии разработки приложения добавлять такую строчку .addTestDevice(). Я так понимаю, что когда нужно запускать приложение, эту строчку убирать и оставить код в таком виде : adRequest...
Программирование Android Admob NullPointerException http://www.cyberforum.ru/android-dev/thread1496415.html
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Capture button click // Execute Logo AsyncTask new...
Программирование Android Какой язык выбрать для написания 2D игры? Здравствуйте! Хочу сделать игру на Андроид, но не знаю какой выбрать... (Такую 2D игру, похожую на Flappy Bird или Hill Climb Rasing.) Пожалуйста! Посоветуйте язык программирования с его... подробнее

Показать сообщение отдельно
DIMA_N
1 / 1 / 0
Регистрация: 21.10.2011
Сообщений: 116
11.07.2015, 22:28  [ТС]
Подскажите еще, создал поток там происходит запрос к БД и прием, все проходит, но потом не могу обработать json как я понимаю говорит что нельзя его обрабатывать в потоке.

Попытался создать функцию вне потока, все также выходит.

Подскажите как вынести выполнение из потока, или может не в этом проблема.

Код
07-10 12:08:16.735      864-886/ru.dima_n.mysql2 E/pass 1﹕ connection success
07-10 12:08:16.923      864-886/ru.dima_n.mysql2 E/pass 2﹕ connection success{"name":"test"}
07-10 12:08:17.023      864-886/ru.dima_n.mysql2 E/Fail 3﹕ java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package ru.dima_n.mysql2;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    String id;
    String name;
    InputStream is=null;
    String result=null;
    String line=null;
    private EditText e_id ;
 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        e_id=(EditText) findViewById(R.id.editText1);
 
    }
 
    public void onClick(View v)
    {
        id=e_id.getText().toString();
 
        // создаем второй поток
        Runnable r = new Runnable(){
            @Override
            public void run ()
            {
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
 
                nameValuePairs.add(new BasicNameValuePair("pid",id));
 
                try
                {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://dima-n.16mb.com/Okna/mysql2.php");
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();
                    Log.e("pass 1", "connection success ");
                }
                catch(Exception e)
                {
                    Log.e("Fail 1", e.toString());
                    Toast.makeText(getApplicationContext(), "Invalid IP Address",
                            Toast.LENGTH_LONG).show();
                }
 
                try
                {
                    BufferedReader reader = new BufferedReader (new InputStreamReader(is,"iso-8859-1"),8);
                    StringBuilder sb = new StringBuilder();
                    while ((line = reader.readLine()) != null)
                    {
                        sb.append(line + "\n");
                    }
                    is.close();
                    result = sb.toString();
                    Log.e("pass 2", "connection success" + result);
                }
                catch(Exception e)
                {
                    Log.e("Fail 2", e.toString());
                }
 
                json();
            }
        };
 
        Thread t = new Thread(r);
        t.start();
 
        //select();
    }
 
    public void json ()
    {
        try
        {
            JSONObject json_data = new JSONObject(result);
            name=(json_data.getString("name"));
            Toast.makeText(getBaseContext(), "name : "+name,
                    Toast.LENGTH_SHORT).show();
        }
        catch(Exception e)
        {
            Log.e("Fail 3", e.toString());
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
}
Добавлено через 33 минуты
еще полазил, это из-за вызова Toast происхоит как я понял.
Если не сложно подскажите как выйти из патока
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru