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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.91
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
#1

Удалённая база данных MySQL, php, android - Программирование Android

10.05.2013, 13:51. Просмотров 6975. Ответов 43
Метки нет (Все метки)

Имеется БД MySQL с таблицей:
MySQL
1
2
3
4
5
6
7
8
9
10
11
12
== Структура таблицы Feld
 
|------
|Поле|Тип|Null|По умолчанию
|------
|//**FID**//|int(11)|Нет|
|**login**|varchar(20)|Нет|
|password|varchar(20)|Нет|
|Fname|varchar(20)|Нет|
|Sname|varchar(20)|Нет|
|Lname|varchar(20)|Нет|
|Fphone|bigint(20)|Нет|
,
скрипт PHP:
PHP
1
2
3
4
5
6
7
8
9
<?php
mysql_connect("bd","login","password");
mysql_select_db("medplus8");
mysql_set_charset( 'utf8' );
$sql=mysql_query("select * from Feld");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print json_fix_cyr(json_encode(array($output)));
mysql_close();?>
и код java:
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package com.example.med;
 
 
 
 
 
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.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.Activity;
import android.net.ParseException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity implements OnClickListener{
     Button button1;
     TextView label;
     MyTask mt;
        
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        button1 = (Button) findViewById(R.id.buttonChange);
        button1.setOnClickListener(this);
        
        label = (TextView) findViewById(R.id.label);
    }     
  //----------------------------------------------
    @Override
    public void onClick(View v) {
      switch (v.getId()) {
      case R.id.buttonChange:{
        // TODO Call second activity
         /* Intent intent = new Intent(this, Base.class);
          startActivity(intent);*/
//-------------
        // Здесь трудоемкие задачи переносятся в дочерний поток.
          mt = new MyTask();
            mt.execute();
//---------------------
          
      }break;
      default:
        break;}
      }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    //-------------------------
    public class MyTask extends AsyncTask<Void, Void, Void> {
        //paring data
                int fd_id;
                String fd_login = null;
                String fd_password = null;
                String fd_fname = null;
                String fd_sname = null;
                String fd_lname = null;
                int fd_phone;
                //----------
                JSONArray jArray;
                 String result = null;
                 InputStream is = null;
                 StringBuilder sb=null;
                 //------
         @Override
            protected void onPostExecute(Void result) {
              super.onPostExecute(result);
              //label.setText(fd_id);
    }
        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub
                // TODO Auto-generated method stub
             ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                //http post
                try{
                     HttpClient httpclient = new DefaultHttpClient();
                     HttpPost httppost = new HttpPost("http://medplus.hut4.ru/feld.php");
                     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                     HttpResponse response = httpclient.execute(httppost);
                     HttpEntity entity = response.getEntity();
                     is = entity.getContent();
                     }
                catch(Exception e)
                {
                         Log.e("log_tag", "Error in http connection"+e.toString());
              }
                //convert response to string
                try{
                      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf8"),8);
                       sb = new StringBuilder();
                       sb.append(reader.readLine() + "\n");
 
                       String line="0";
                       while ((line = reader.readLine()) != null) 
                       {
                                      sb.append(line + "\n");
                       }
                        is.close();
                        result=sb.toString();
                   }
                   catch(Exception e)
                {
                              Log.e("log_tag", "Error converting result "+e.toString());
              }
                try{
                      jArray = new JSONArray(result);
                      JSONObject json_data=null;
                      for(int i=0;i<jArray.length();i++)
                      {
                             json_data = jArray.getJSONObject(i);
                             fd_id=json_data.getInt("FID");
                             fd_login=json_data.getString("login");
                             fd_password=json_data.getString("password");
                             fd_fname=json_data.getString("Fname");
                             fd_sname=json_data.getString("Sname");
                             fd_lname=json_data.getString("Lname");
                             fd_phone=json_data.getInt("Fphone");
                      }
                    }
                      catch(JSONException e1)
                      {
                          Toast.makeText(getBaseContext(), "No City Found" ,Toast.LENGTH_LONG).show();
                      }
                      catch (ParseException e1)
                    {
                            e1.printStackTrace();
                    }
            return null;
        }
    //--------------------------
    }
 }
При работе с предыдущей таблицей, состоящей из 2- столбцов работало нормально, а с этой(появилось использование русских букв), LogCat выдаёт список ошибок, связаных с AsyncTask.
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
05-10 09:32:32.889: D/dalvikvm(969): GC_FOR_ALLOC freed 61K, 8% free 2452K/2660K, paused 688ms, total 691ms
05-10 09:32:33.349: I/dalvikvm-heap(969): Grow heap (frag case) to 15.191MB for 13271056-byte allocation
05-10 09:32:33.460: D/dalvikvm(969): GC_FOR_ALLOC freed 2K, 2% free 15410K/15624K, paused 109ms, total 109ms
05-10 09:32:33.679: D/dalvikvm(969): GC_CONCURRENT freed <1K, 2% free 15410K/15624K, paused 5ms+42ms, total 219ms
05-10 09:32:35.349: D/dalvikvm(969): GC_FOR_ALLOC freed <1K, 2% free 15410K/15624K, paused 57ms, total 57ms
05-10 09:32:35.449: I/dalvikvm-heap(969): Grow heap (frag case) to 20.814MB for 5898256-byte allocation
05-10 09:32:35.602: D/dalvikvm(969): GC_CONCURRENT freed 0K, 2% free 21170K/21388K, paused 20ms+21ms, total 156ms
05-10 09:32:37.220: D/gralloc_goldfish(969): Emulator without GPU emulation detected.
05-10 09:32:54.910: I/Choreographer(969): Skipped 68 frames!  The application may be doing too much work on its main thread.
05-10 09:32:57.860: W/dalvikvm(969): threadid=13: thread exiting with uncaught exception (group=0x40a71930)
05-10 09:32:57.900: E/AndroidRuntime(969): FATAL EXCEPTION: AsyncTask #3
05-10 09:32:57.900: E/AndroidRuntime(969): java.lang.RuntimeException: An error occured while executing doInBackground()
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.os.AsyncTask$3.done(AsyncTask.java:299)
05-10 09:32:57.900: E/AndroidRuntime(969):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
05-10 09:32:57.900: E/AndroidRuntime(969):  at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
05-10 09:32:57.900: E/AndroidRuntime(969):  at java.util.concurrent.FutureTask.run(FutureTask.java:239)
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-10 09:32:57.900: E/AndroidRuntime(969):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-10 09:32:57.900: E/AndroidRuntime(969):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-10 09:32:57.900: E/AndroidRuntime(969):  at java.lang.Thread.run(Thread.java:856)
05-10 09:32:57.900: E/AndroidRuntime(969): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.os.Handler.<init>(Handler.java:197)
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.os.Handler.<init>(Handler.java:111)
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.widget.Toast$TN.<init>(Toast.java:324)
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.widget.Toast.<init>(Toast.java:91)
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.widget.Toast.makeText(Toast.java:238)
05-10 09:32:57.900: E/AndroidRuntime(969):  at com.example.med.MainActivity$MyTask.doInBackground(MainActivity.java:150)
05-10 09:32:57.900: E/AndroidRuntime(969):  at com.example.med.MainActivity$MyTask.doInBackground(MainActivity.java:1)
05-10 09:32:57.900: E/AndroidRuntime(969):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-10 09:32:57.900: E/AndroidRuntime(969):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-10 09:32:57.900: E/AndroidRuntime(969):  ... 4 more
В чём проблемы?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
13.05.2013, 00:00  [ТС]     Удалённая база данных MySQL, php, android #21
Да, json крив, т.к. в этом проекте первый раз сталкиваюсь с ним, php, mySQL и android.
Но почему не вставляется текущая дата в ячейку?
PHP
1
2
3
$date=date('d.m.Y. H-i-s');
$sqlin=mysql_query("UPDATE `medplus8`.`Feld` SET `TIME_LAST_LOGIN` = ".$date." WHERE `Feld`.`FID` =".$id.";"); 
}
Этот код работает, если вставлять вместо .$date. просто текст.
jumb0jet
16 / 16 / 0
Регистрация: 08.05.2013
Сообщений: 40
13.05.2013, 00:03     Удалённая база данных MySQL, php, android #22
8VAid8, я PHP тоже не особо разбираюсь, а вернее вообще не знаю кроме синтаксиса. Тут ничего не могу подсказать.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
13.05.2013, 00:05     Удалённая база данных MySQL, php, android #23
По поводу PHP обращайтесь в раздел PHP.
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
17.05.2013, 01:22  [ТС]     Удалённая база данных MySQL, php, android #24
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
package com.example.med;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.Activity;
import android.content.Intent;
import android.net.ParseException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
import com.example.med.MainActivity.UserInfo;
 
public class Base extends Activity implements OnClickListener{
    
    Button buttonLogout;
    Button buttonSearch;
    Button buttonPersonal;
    Button buttonPatient;
    Button buttonMedic;
    Button buttonStat;
    Intent intent;
    TextView textViewLastLogin;
 //-данные текущего пользователя
    int  userId;
    String userFname = null;
    String userSname = null;
    String userLname = null;
    String userPhone = null;
    String time_last_login = null;
    private TaskForLastTime task;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base);
        buttonLogout = (Button) findViewById(R.id.buttonLogout);
        buttonLogout.setOnClickListener(this);
        
        buttonSearch = (Button) findViewById(R.id.buttonSearch);
        buttonSearch.setOnClickListener(this);
        
        buttonPersonal = (Button) findViewById(R.id.buttonChange);
        buttonPersonal.setOnClickListener(this);
        
        buttonPatient = (Button) findViewById(R.id.buttonCalls);
        buttonPatient.setOnClickListener(this);
        
        buttonMedic = (Button) findViewById(R.id.buttonMedic);
        buttonMedic.setOnClickListener(this);
        
        buttonStat = (Button)findViewById(R.id.buttonStat);
        buttonStat.setOnClickListener(this);
        
        TextView FIO = (TextView) findViewById(R.id.FIO);
        textViewLastLogin = (TextView) findViewById(R.id.textViewLastLogin);
        //----получение данных из MainActivity------------
        Intent intent = getIntent();        
        userId = intent.getIntExtra("userId", -1);
        Toast.makeText(Base.this, String.valueOf(userId),Toast.LENGTH_SHORT).show();
        userFname = intent.getStringExtra("userFname");
        userSname = intent.getStringExtra("userSname");
        userLname = intent.getStringExtra("userLname");
        userPhone = intent.getStringExtra("userPhone");
        //---получение последнего времени входа----------
        task = new TaskForLastTime();
        task.execute();
        //----Установка значений-------------------------
        FIO.setText("Добро пожаловать, "+ userFname + " " + userSname + " " + userLname + ".");
    }
    //----------------------------------------------
    @Override
    public void onClick(View v)
    {
        if (v.getId() == R.id.buttonLogout) {
            intent = new Intent(this, MainActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.buttonSearch) {
            intent = new Intent(this, VizovActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.buttonChange) {
            intent = new Intent(this, PersonalActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.buttonCalls) {
            intent = new Intent(this, PatientActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.buttonMedic) {
            intent = new Intent(this, MedicActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.buttonStat) {
            intent = new Intent(this, StatActivity.class);
            startActivity(intent);
        } else {
        }
    }
    //------------------------------------------------
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.base, menu);
        return true;
    }
    
    //-----------------------------
    
    private static final String TAG = MainActivity.class.getName();
     
    private  final String HOST = "http://medplus.hut4.ru/feld.php?updatetime&id="+String.valueOf(userId);
    
    private static final String ENCODING = "utf8";
    //------------------------------
    public class TaskForLastTime extends AsyncTask<Void, UserInfo, Void> {
 
        public static final String KEY_ID = "FID";
        public static final String KEY_TIME_LOGIN = "TIME_LAST_LOGIN";
        public static final String KEY_PHONE = "Fphone";
 
        private JSONArray jsonArray;
        private String webData = null;
        private StringBuilder sb = null;
        private Throwable exception;
  
        @Override
        protected Void doInBackground(Void... params) {
            HttpEntity entity = null;
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(HOST);
                HttpResponse response = httpclient.execute(httppost);
                entity = response.getEntity();              
            } catch (Exception e) {
                Log.e(TAG, "Error in http connection" + e.toString(), e);
                exception = e;
                return null;
            }
            BufferedReader reader = null;
            InputStream is = null;
            try {
                is = entity.getContent();
                reader = new BufferedReader(
                        new InputStreamReader(is, ENCODING), 8);
                sb = new StringBuilder();
 
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                
                webData = sb.toString();
            } catch (Exception e) {
                Log.e(TAG, "Error converting result " + e.toString(), e);
                exception = e;
                return null;
            } finally {
                try {
                    reader.close();
                    is.close();
                } catch (IOException e) {
                    Log.e(TAG, "Unexpected Error" + e.toString(), e);
                }
            }
 
            try {
                jsonArray = new JSONArray(webData);
                JSONObject jsonData = null; 
                for (int i = 0; i < jsonArray.length(); i++) {
                    jsonData = jsonArray.getJSONObject(i);
                    if(i==userId)
                    {
                    time_last_login= jsonData.getString(KEY_TIME_LOGIN);
                    }
                }
            } catch (JSONException e) {
                Log.e(TAG, "Bad json " + e.toString(), e);
                exception = e;
                return null;
            } catch (ParseException e) {
                Log.e(TAG, "Error converting result " + e.toString(), e);
                exception = e;
                return null;
            }
            return null;
        }
        
        @Override
        protected void onPreExecute()
        {
            time_last_login = "";
        }
 
        @Override
        protected void onPostExecute(Void result) {
            if (exception != null) {
                Toast.makeText(Base.this,
                        "Error while getting data from web server",
                        Toast.LENGTH_SHORT).show();
            }
            textViewLastLogin.setText(time_last_login);
        }
    }
    }
Почему не отправляется запрос? Из строки браузера нормально проходит.

P.S. Вот это должно запускаться при запуске активити.
Java
1
private  final String HOST = "http://medplus.hut4.ru/feld.php?updatetime&id="+String.valueOf(userId);
Ошибок нет.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 01:28     Удалённая база данных MySQL, php, android #25
добавьте логи/подебагайте.

Добавлено через 1 минуту
выложите проект если не умеете.
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
17.05.2013, 01:28  [ТС]     Удалённая база данных MySQL, php, android #26
Логи:
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
05-16 20:57:04.483: E/Trace(969): error opening trace file: No such file or directory (2)
05-16 20:57:05.633: D/dalvikvm(969): GC_FOR_ALLOC freed 64K, 8% free 2453K/2664K, paused 87ms, total 100ms
05-16 20:57:05.933: I/dalvikvm-heap(969): Grow heap (frag case) to 15.191MB for 13271056-byte allocation
05-16 20:57:06.064: D/dalvikvm(969): GC_FOR_ALLOC freed 2K, 2% free 15411K/15628K, paused 89ms, total 89ms
05-16 20:57:06.234: D/dalvikvm(969): GC_CONCURRENT freed <1K, 2% free 15411K/15628K, paused 5ms+42ms, total 159ms
05-16 20:57:08.572: D/dalvikvm(969): GC_FOR_ALLOC freed <1K, 2% free 15410K/15628K, paused 27ms, total 28ms
05-16 20:57:08.642: I/dalvikvm-heap(969): Grow heap (frag case) to 20.814MB for 5898256-byte allocation
05-16 20:57:08.742: D/dalvikvm(969): GC_CONCURRENT freed 0K, 2% free 21170K/21392K, paused 19ms+18ms, total 100ms
05-16 20:57:09.762: D/gralloc_goldfish(969): Emulator without GPU emulation detected.
05-16 20:58:32.393: D/InputEventConsistencyVerifier(969): KeyEvent: ACTION_UP but key was not down.
05-16 20:58:32.393: D/InputEventConsistencyVerifier(969):   in android.widget.EditText{40cf0120 VFED..CL .F....I. 197,483-1152,523 #7f09000f app:id/editSname}
05-16 20:58:32.393: D/InputEventConsistencyVerifier(969):   0: sent at 299995000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=299995, downTime=299899, deviceId=0, source=0x101 }
05-16 20:58:35.246: D/InputEventConsistencyVerifier(969): KeyEvent: ACTION_UP but key was not down.
05-16 20:58:35.246: D/InputEventConsistencyVerifier(969):   in android.widget.Button{40cddf50 VFED..C. .F....I. 128,523-1152,571 #7f090006 app:id/buttonChange}
05-16 20:58:35.246: D/InputEventConsistencyVerifier(969):   0: sent at 302858000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=302858, downTime=302821, deviceId=0, source=0x101 }
05-16 20:58:37.383: D/dalvikvm(969): GC_FOR_ALLOC freed 13215K, 62% free 8480K/21840K, paused 250ms, total 304ms
05-16 20:58:37.463: I/dalvikvm-heap(969): Grow heap (frag case) to 18.378MB for 10441220-byte allocation
05-16 20:58:37.783: D/dalvikvm(969): GC_FOR_ALLOC freed 14K, 15% free 18662K/21840K, paused 315ms, total 315ms
05-16 20:58:38.224: D/dalvikvm(969): GC_CONCURRENT freed 2K, 15% free 18660K/21840K, paused 11ms+86ms, total 443ms
05-16 20:58:42.673: D/dalvikvm(969): GC_FOR_ALLOC freed 26K, 15% free 18634K/21840K, paused 55ms, total 55ms
05-16 20:58:42.712: I/dalvikvm-heap(969): Grow heap (frag case) to 22.760MB for 4637620-byte allocation
05-16 20:58:42.892: D/dalvikvm(969): GC_CONCURRENT freed 0K, 13% free 23163K/26372K, paused 75ms+19ms, total 172ms
05-16 20:58:43.075: I/Choreographer(969): Skipped 620 frames!  The application may be doing too much work on its main thread.
05-16 21:05:05.645: E/Trace(1057): error opening trace file: No such file or directory (2)
05-16 21:05:07.183: D/dalvikvm(1057): GC_FOR_ALLOC freed 68K, 9% free 2453K/2668K, paused 411ms, total 414ms
05-16 21:05:07.323: I/dalvikvm-heap(1057): Grow heap (frag case) to 15.191MB for 13271056-byte allocation
05-16 21:05:07.433: D/dalvikvm(1057): GC_FOR_ALLOC freed 2K, 2% free 15411K/15632K, paused 109ms, total 109ms
05-16 21:05:07.525: D/dalvikvm(1057): GC_CONCURRENT freed <1K, 2% free 15411K/15632K, paused 13ms+28ms, total 87ms
05-16 21:05:08.823: D/dalvikvm(1057): GC_FOR_ALLOC freed <1K, 2% free 15410K/15632K, paused 27ms, total 27ms
05-16 21:05:08.883: I/dalvikvm-heap(1057): Grow heap (frag case) to 20.814MB for 5898256-byte allocation
05-16 21:05:09.065: D/dalvikvm(1057): GC_CONCURRENT freed 0K, 2% free 21170K/21396K, paused 74ms+24ms, total 188ms
05-16 21:05:09.973: D/gralloc_goldfish(1057): Emulator without GPU emulation detected.
05-16 21:05:47.795: D/InputEventConsistencyVerifier(1057): KeyEvent: ACTION_UP but key was not down.
05-16 21:05:47.795: D/InputEventConsistencyVerifier(1057):   in android.widget.EditText{40cf0f80 VFED..CL .F....I. 197,483-1152,523 #7f09000f app:id/editSname}
05-16 21:05:47.795: D/InputEventConsistencyVerifier(1057):   0: sent at 735426000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=735426, downTime=735313, deviceId=0, source=0x101 }
05-16 21:05:59.853: D/dalvikvm(1057): GC_FOR_ALLOC freed 13288K, 62% free 8486K/21920K, paused 248ms, total 299ms
05-16 21:05:59.913: I/dalvikvm-heap(1057): Grow heap (frag case) to 18.384MB for 10441220-byte allocation
05-16 21:06:00.353: D/dalvikvm(1057): GC_FOR_ALLOC freed 20K, 15% free 18662K/21920K, paused 432ms, total 432ms
05-16 21:06:00.795: D/dalvikvm(1057): GC_CONCURRENT freed 2K, 15% free 18660K/21920K, paused 10ms+25ms, total 445ms
05-16 21:06:05.453: D/dalvikvm(1057): GC_FOR_ALLOC freed 26K, 15% free 18634K/21920K, paused 65ms, total 65ms
05-16 21:06:05.492: I/dalvikvm-heap(1057): Grow heap (frag case) to 22.760MB for 4637620-byte allocation
05-16 21:06:05.762: D/dalvikvm(1057): GC_CONCURRENT freed 0K, 13% free 23163K/26452K, paused 83ms+39ms, total 267ms
05-16 21:06:05.972: I/Choreographer(1057): Skipped 657 frames!  The application may be doing too much work on its main thread.
05-16 21:06:06.822: I/Choreographer(1057): Skipped 38 frames!  The application may be doing too much work on its main thread.
05-16 21:08:09.862: D/InputEventConsistencyVerifier(1057): KeyEvent: ACTION_UP but key was not down.
05-16 21:08:09.862: D/InputEventConsistencyVerifier(1057):   in android.widget.EditText{41f9c878 VFED..CL .F....I. 197,483-1152,523 #7f09000f app:id/editSname}
05-16 21:08:09.862: D/InputEventConsistencyVerifier(1057):   0: sent at 877520000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=877520, downTime=877393, deviceId=0, source=0x101 }
05-16 21:08:12.215: D/InputEventConsistencyVerifier(1057): KeyEvent: ACTION_UP but key was not down.
05-16 21:08:12.215: D/InputEventConsistencyVerifier(1057):   in android.widget.Button{41f7cda8 VFED..C. .F....I. 128,523-1152,571 #7f090006 app:id/buttonChange}
05-16 21:08:12.215: D/InputEventConsistencyVerifier(1057):   0: sent at 879869000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=879869, downTime=879777, deviceId=0, source=0x101 }
05-16 21:08:16.743: I/Choreographer(1057): Skipped 71 frames!  The application may be doing too much work on its main thread.
05-16 21:08:17.564: I/Choreographer(1057): Skipped 33 frames!  The application may be doing too much work on its main thread.
05-16 21:08:19.463: I/Choreographer(1057): Skipped 62 frames!  The application may be doing too much work on its main thread.
05-16 21:16:29.943: D/dalvikvm(1162): GC_FOR_ALLOC freed 71K, 9% free 2453K/2672K, paused 279ms, total 297ms
05-16 21:16:30.595: I/dalvikvm-heap(1162): Grow heap (frag case) to 15.191MB for 13271056-byte allocation
05-16 21:16:30.773: D/dalvikvm(1162): GC_FOR_ALLOC freed 2K, 2% free 15411K/15636K, paused 116ms, total 116ms
05-16 21:16:30.883: D/dalvikvm(1162): GC_CONCURRENT freed <1K, 2% free 15411K/15636K, paused 7ms+16ms, total 81ms
05-16 21:16:32.093: D/dalvikvm(1162): GC_FOR_ALLOC freed <1K, 2% free 15410K/15636K, paused 31ms, total 31ms
05-16 21:16:32.163: I/dalvikvm-heap(1162): Grow heap (frag case) to 20.814MB for 5898256-byte allocation
05-16 21:16:32.333: D/dalvikvm(1162): GC_CONCURRENT freed 0K, 2% free 21170K/21400K, paused 74ms+28ms, total 175ms
05-16 21:16:33.413: D/gralloc_goldfish(1162): Emulator without GPU emulation detected.
05-16 21:16:46.262: D/InputEventConsistencyVerifier(1162): KeyEvent: ACTION_UP but key was not down.
05-16 21:16:46.262: D/InputEventConsistencyVerifier(1162):   in android.widget.EditText{40cf1e68 VFED..CL .F....I. 197,483-1152,523 #7f09000f app:id/editSname}
05-16 21:16:46.262: D/InputEventConsistencyVerifier(1162):   0: sent at 1393891000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=1393891, downTime=1393782, deviceId=0, source=0x101 }
05-16 21:16:49.043: D/InputEventConsistencyVerifier(1162): KeyEvent: ACTION_UP but key was not down.
05-16 21:16:49.043: D/InputEventConsistencyVerifier(1162):   in android.widget.Button{40cddf50 VFED..C. .F....ID 128,523-1152,571 #7f090006 app:id/buttonChange}
05-16 21:16:49.043: D/InputEventConsistencyVerifier(1162):   0: sent at 1396742000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=1396742, downTime=1396658, deviceId=0, source=0x101 }
05-16 21:16:51.324: D/dalvikvm(1162): GC_FOR_ALLOC freed 13213K, 62% free 8479K/21840K, paused 196ms, total 245ms
05-16 21:16:51.373: I/dalvikvm-heap(1162): Grow heap (frag case) to 18.377MB for 10441220-byte allocation
05-16 21:16:51.683: D/dalvikvm(1162): GC_FOR_ALLOC freed 13K, 15% free 18662K/21840K, paused 311ms, total 311ms
05-16 21:16:52.085: D/dalvikvm(1162): GC_CONCURRENT freed 2K, 15% free 18660K/21840K, paused 8ms+9ms, total 399ms
05-16 21:16:56.333: D/dalvikvm(1162): GC_FOR_ALLOC freed 25K, 15% free 18634K/21840K, paused 310ms, total 310ms
05-16 21:16:56.503: I/dalvikvm-heap(1162): Grow heap (frag case) to 22.760MB for 4637620-byte allocation
05-16 21:16:56.693: D/dalvikvm(1162): GC_CONCURRENT freed 0K, 13% free 23163K/26372K, paused 77ms+19ms, total 195ms
05-16 21:16:56.913: I/Choreographer(1162): Skipped 604 frames!  The application may be doing too much work on its main thread.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 01:30     Удалённая база данных MySQL, php, android #27
имел ввиду добавьте в код логов, в тех что вы выложили не вижу никакой полезной инфы.
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
17.05.2013, 01:39  [ТС]     Удалённая база данных MySQL, php, android #28
Проект прилагаю.
Вложения
Тип файла: 7z workspace.7z (9.64 Мб, 7 просмотров)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 01:52     Удалённая база данных MySQL, php, android #29
какой логин/пароль вводить? что нажимать?
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
17.05.2013, 01:56  [ТС]     Удалённая база данных MySQL, php, android #30
login:login
password: password
-> войти
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 02:07     Удалённая база данных MySQL, php, android #31
у вас хост вначале формируется с id 0 и так и используется.

Добавлено через 1 минуту
Java
1
+String.valueOf(userId)
поместите в
Java
1
new HttpPost
Java
1
HttpPost httppost = new HttpPost(HOST+String.valueOf(userId));
Добавлено через 5 минут
плюс в ответ приходит кусок html'a вместе с json.
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
17.05.2013, 02:13  [ТС]     Удалённая база данных MySQL, php, android #32
Почему приходить html? Вот код скрипта:
PHP
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
<?php
mysql_connect("bd","login","password"); //логинимся
mysql_select_db("medplus");                     // выбираем бд
$date=date('d.m.Y. H-i-s');                            //время сервера
 
mysql_set_charset( 'utf8' );                     //выбор кодировки
 
//$output_time=array ('TIME'=>$date);             //добавление времени к json
//$output[]=$output_time;                          //добавление времени
$sql=mysql_query("select * from Feld");          // извлечение данных из бд
while($row=mysql_fetch_assoc($sql))              //
$output[]=$row;                                  //запись данных в json
 
print json_fix_cyr(json_encode($output));        //печать
if (isset($_GET['updatetime']))
{
$id = $_GET['id'];
$sqlin=mysql_query("UPDATE `medplus`.`Feld` SET `TIME_LAST_LOGIN` = '".$date."' WHERE `Feld`.`FID` =".$id.";"); 
}
mysql_close();
 
 
function json_fix_cyr($json_str) { 
 $cyr_chars = array ( 
 '\u0430' => 'а', '\u0410' => 'А', 
 '\u0431' => 'б', '\u0411' => 'Б', 
 '\u0432' => 'в', '\u0412' => 'В', 
 '\u0433' => 'г', '\u0413' => 'Г', 
 '\u0434' => 'д', '\u0414' => 'Д', 
 '\u0435' => 'е', '\u0415' => 'Е', 
 '\u0451' => 'ё', '\u0401' => 'Ё', 
 '\u0436' => 'ж', '\u0416' => 'Ж', 
 '\u0437' => 'з', '\u0417' => 'З', 
 '\u0438' => 'и', '\u0418' => 'И', 
 '\u0439' => 'й', '\u0419' => 'Й', 
 '\u043a' => 'к', '\u041a' => 'К', 
 '\u043b' => 'л', '\u041b' => 'Л', 
 '\u043c' => 'м', '\u041c' => 'М', 
 '\u043d' => 'н', '\u041d' => 'Н', 
 '\u043e' => 'о', '\u041e' => 'О', 
 '\u043f' => 'п', '\u041f' => 'П', 
 '\u0440' => 'р', '\u0420' => 'Р', 
 '\u0441' => 'с', '\u0421' => 'С', 
 '\u0442' => 'т', '\u0422' => 'Т', 
 '\u0443' => 'у', '\u0423' => 'У', 
 '\u0444' => 'ф', '\u0424' => 'Ф', 
 '\u0445' => 'х', '\u0425' => 'Х', 
 '\u0446' => 'ц', '\u0426' => 'Ц', 
 '\u0447' => 'ч', '\u0427' => 'Ч', 
 '\u0448' => 'ш', '\u0428' => 'Ш', 
 '\u0449' => 'щ', '\u0429' => 'Щ', 
 '\u044a' => 'ъ', '\u042a' => 'Ъ', 
 '\u044b' => 'ы', '\u042b' => 'Ы', 
 '\u044c' => 'ь', '\u042c' => 'Ь', 
 '\u044d' => 'э', '\u042d' => 'Э', 
 '\u044e' => 'ю', '\u042e' => 'Ю', 
 '\u044f' => 'я', '\u042f' => 'Я', 
 
 '\r' => '', 
 '\n' => '<br />', 
 '\t' => '' 
 ); 
 
 foreach ($cyr_chars as $cyr_char_key => $cyr_char) { 
 $json_str = str_replace($cyr_char_key, $cyr_char, $json_str); 
 } 
 return $json_str; 
}
?>
Ещё в программу не возвращается значение времени с сервера.
Java
1
2
3
4
5
6
7
8
9
  try {
                jsonArray = new JSONArray(webData);
                JSONObject jsonData = null; 
                for (int i = 0; i < jsonArray.length(); i++) {
                    jsonData = jsonArray.getJSONObject(i);
                    if(i==userId)
                    {
                    time_last_login= jsonData.getString(KEY_TIME_LOGIN);
                    }
Java
1
2
3
4
5
6
7
8
9
 @Override
        protected void onPostExecute(Void result) {
            if (exception != null) {
                Toast.makeText(Base.this,
                        "Error while getting data from web server",
                        Toast.LENGTH_SHORT).show();
            }
            textViewLastLogin.setText(time_last_login);
        }
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 02:21     Удалённая база данных MySQL, php, android #33
Цитата Сообщение от 8VAid8 Посмотреть сообщение
Почему приходить html? Вот код скрипта:
я не пхпешник, спросите в разделе пхп.


Цитата Сообщение от 8VAid8 Посмотреть сообщение
Ещё в программу не возвращается значение времени с сервера.
просто сервер отправляет пустую строчку там где должно быть время.

Добавлено через 4 минуты
точнее вы не с того аккаунта вытягиваете данные, вы не проверяете значение FID а просто выводите по индексу.
у вас id=1 а это второй элемент масива, а в второго аккаунта "TIME_LAST_LOGIN":""
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
17.05.2013, 02:28  [ТС]     Удалённая база данных MySQL, php, android #34
Сменил на
Java
1
2
3
4
if(jsonData.getInt(KEY_ID)==userId)
                    {
                    time_last_login= jsonData.getString(KEY_TIME_LOGIN);
                    }
Работает.
А то что в ответ приходит кусок html'a вместе с json, может создать какие-либо проблемы?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 02:36     Удалённая база данных MySQL, php, android #35
ну, при парсинге json'a он отбрасывается, но лучше уж довести все до ума.
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
17.05.2013, 19:43  [ТС]     Удалённая база данных MySQL, php, android #36
Как создать ArrayAdapter в onPostExecute?
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
package com.example.med;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.Activity;
import android.net.ParseException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
 
public class MedicActivity extends Activity {
    private static final String TAG = MedicActivity.class.getName();
    
    private static final String HOSTusers = "http://medplus.hut4.ru/feld.php";
    
    private static final String ENCODING = "utf8";
    int position;
    private UserNamesTask task;
    String bufferData;
    String[] data;/* = {"Иванов", "Сидоров", "Петров", "Фельдшеров", "Говоров", "Ибнарцов", "Голукин",
              "ййй1", "цццц2", "уууу3", "ккккк4", "еееее5", "нннннн6", "йцуке7","ййй8", "цццц9", 
              "уууу10", "ккккк11", "еееее12", "нннннн6", "йцуке13"};*/
    
    //String[] data = usersFnameMas;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_medic);
//---------получим список фельдшеров-----------------------------
        task = new UserNamesTask();
        task.execute();
        
         /*//--------------------
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        spinner.setAdapter(adapter);
        // заголовок
        spinner.setPrompt("Title");
        // выделяем элемент 
        spinner.setSelection(2);
        // устанавливаем обработчик нажатия
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
      @Override
      public void onItemSelected(AdapterView<?> parent, View view,
          int position, long id) {
        // показываем позиция нажатого элемента
        Toast.makeText(getBaseContext(), "Position = " + position, Toast.LENGTH_SHORT).show();
      }
      @Override
      public void onNothingSelected(AdapterView<?> arg0) {
      }
    });*/
        //---------------------------------
      }
    //-----------------------------------------------------------
    public static class UserInfo {
        private int id;
        private String login;
        private String password;
        private String firstName;
        private String secondName;
        private String lastName;
        private String phone;
 
        public UserInfo() {
            super();
        }
        //Информация о пользователе---------------------------------
        public UserInfo(int id, String login, String password,
                String firstName, String secondName, String lastName,
                String phone) {
            super();
            this.id = id;
            this.login = login;
            this.password = password;
            this.firstName = firstName;
            this.secondName = secondName;
            this.lastName = lastName;
            this.phone = phone;
        }
        //свойства класса---------------------------
        public int getId() {
            return id;
        }
 
        public void setId(int id) {
            this.id = id;
        }
 
        public String getLogin() {
            return login;
        }
 
        public void setLogin(String login) {
            this.login = login;
        }
 
        public String getPassword() {
            return password;
        }
 
        public void setPassword(String password) {
            this.password = password;
        }
 
        public String getFirstName() {
            return firstName;
        }
 
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
 
        public String getSecondName() {
            return secondName;
        }
 
        public void setSecondName(String secondName) {
            this.secondName = secondName;
        }
 
        public String getLastName() {
            return lastName;
        }
 
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
 
        public String getPhone() {
            return phone;
        }
 
        public void setPhone(String phone) {
            this.phone = phone;
        }
        @Override
        public String toString() {
            return "UserInfo [id=" + id + ", login=" + login + ", password="
                    + password + ", firstName=" + firstName + ", secondName="
                    + secondName + ", lastName=" + lastName + ", phone="
                    + phone + "]";
        }
 
    }
 
    // -------------------------
    public class UserNamesTask extends AsyncTask<Void, UserInfo, Void> {
 
        public static final String KEY_ID = "FID";
        public static final String KEY_LOGIN = "login";
        public static final String KEY_PASSWORD = "password";
        public static final String KEY_FIRST_NAME = "Fname";
        private static final String KEY_LAST_NAME = "Lname";
        private static final String KEY_SECOND_NAME = "Sname";
        public static final String KEY_PHONE = "Fphone";
 
        private JSONArray jsonArray;
        private String webData = null;
        private StringBuilder sb = null;
        private Throwable exception;
  
        @Override
        protected Void doInBackground(Void... params) {
            HttpEntity entity = null;
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(HOSTusers);
                HttpResponse response = httpclient.execute(httppost);
                entity = response.getEntity();              
            } catch (Exception e) {
                Log.e(TAG, "Error in http connection" + e.toString(), e);
                exception = e;
                return null;
            }
            BufferedReader reader = null;
            InputStream is = null;
            try {
                is = entity.getContent();
                reader = new BufferedReader(
                        new InputStreamReader(is, ENCODING), 8);
                sb = new StringBuilder();
 
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                
                webData = sb.toString();
            } catch (Exception e) {
                Log.e(TAG, "Error converting result " + e.toString(), e);
                exception = e;
                return null;
            } finally {
                try {
                    reader.close();
                    is.close();
                } catch (IOException e) {
                    Log.e(TAG, "Unexpected Error" + e.toString(), e);
                }
            }
 
            try {
                jsonArray = new JSONArray(webData);
                JSONObject jsonData = null; 
                for (int i = 0; i < jsonArray.length(); i++) {
                    jsonData = jsonArray.getJSONObject(i);
                    final UserInfo userInfo = new UserInfo();       
                    userInfo.setFirstName(jsonData.getString(KEY_FIRST_NAME));
                    userInfo.setSecondName(jsonData.getString(KEY_SECOND_NAME));
                    userInfo.setLastName(jsonData.getString(KEY_LAST_NAME));
                    publishProgress(userInfo);
                }
            } catch (JSONException e) {
                Log.e(TAG, "Bad json " + e.toString(), e);
                exception = e;
                return null;
            } catch (ParseException e) {
                Log.e(TAG, "Error converting result " + e.toString(), e);
                exception = e;
                return null;
            }
            return null;
        }
        
        @Override
        protected void onPreExecute()
        {
 
        }
        boolean flag=true;
        int i = 0;
        @Override
        protected void onProgressUpdate(UserInfo... values) {
            UserInfo userInfo = values[0];
   bufferData = bufferData+ ". " + userInfo.getFirstName() + ". " + userInfo.getSecondName() + ". " + userInfo.getLastName();
        }
 
        @Override
        protected void onPostExecute(Void result) {
            if (exception != null) {
                Toast.makeText(MedicActivity.this,
                        "Error while getting data from web server",
                        Toast.LENGTH_SHORT).show();
            }
            data=bufferData.split(".");
            //--------!проблема!------------------------------------------
            //--------------------
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            
            Spinner spinner = (Spinner) findViewById(R.id.spinner);
            spinner.setAdapter(adapter);
            // заголовок
            spinner.setPrompt("Title");
            // выделяем элемент 
            spinner.setSelection(2);
            // устанавливаем обработчик нажатия
            spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
          @Override
          public void onItemSelected(AdapterView<?> parent, View view,
              int position, long id) {
            // показываем позиция нажатого элемента
            Toast.makeText(getBaseContext(), "Position = " + position, Toast.LENGTH_SHORT).show();
          }
          @Override
          public void onNothingSelected(AdapterView<?> arg0) {
          }
        });
            //----------------------------------------------------------------
        }
    }
}
Закомментированная часть в OnCreate работает, а в onPostExecute нет. Говорит, что конструктор не определён.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 19:53     Удалённая база данных MySQL, php, android #37
this -> MedicActivity.this

Добавлено через 50 секунд
или getBaseContext()
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
28.05.2013, 20:44  [ТС]     Удалённая база данных MySQL, php, android #38
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
package com.example.med;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.Activity;
import android.content.Intent;
import android.net.ParseException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
 
public class VizovActivity extends Activity implements OnClickListener {
    
    //----Info-----------
    String PFname;
    String PSname;
    String PLname;
    int[] PIDmas = new int[100];
    String PatientFIO;
    
    String AdressStreet;
    String AdressNum;
    String Pphone;
    String Contr;
    String Npolis;
    String Birthday;
    //------------------------------
    private TaskNamesPatients taskp;
    int j = 0;
    Button buttonFound;
    EditText editFname, editSname, editLname, editAdressStreet, editAdressNum; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_vizov);
        buttonFound = (Button) findViewById(R.id.buttonPersonal);
        buttonFound.setOnClickListener(this);
        
        editFname = (EditText) findViewById(R.id.editFname);
        editSname = (EditText) findViewById(R.id.editSname);
        editLname = (EditText) findViewById(R.id.editLname);
        
        editAdressStreet = (EditText) findViewById(R.id.editAdressStreet);
        editAdressNum = (EditText) findViewById(R.id.editAdressNum);
        
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.vizov, menu);
        return true;
    }
 
    @Override
    public void onClick(View v) {
 
        if (v.getId() == R.id.buttonPersonal) {
            try{
                taskp = new TaskNamesPatients();
                taskp.execute();
            }
            catch (Exception e) {
               Log.e(TAG, "Error:" + e.toString(), e);
           }
        } 
        else {
        }
    }
    //-------получение имён пациентов--------------------------------------------
 
    //-----------------------------
    
        private static final String TAG = VizovActivity.class.getName();
         
        String HOST = "http://medplus.hut4.ru/search_patient.php?search";
        
        private static final String ENCODING = "utf8";
        
   
       public class TaskNamesPatients extends AsyncTask<Void, Void, Void> {           
           public static final String KEY_FNAME = "PFname";
           public static final String KEY_SNAME = "PSname";
           public static final String KEY_LNAME = "PLname";
           public static final String KEY_ID = "PID";
                      
           private JSONArray jsonArray;
           private String webData = null;
           private StringBuilder sb = null;
           private Throwable exception;
     
           @Override
           protected Void doInBackground(Void... params) {
               HttpEntity entity = null;
               try {
                   HttpClient httpclient = new DefaultHttpClient();
                   HttpPost httppost = new HttpPost(HOST+"&Fname="+PFname+"&Sname="+PSname+
            "&Lname="+PLname+"&AdressStreet="+AdressStreet+"&AdressNum="+AdressNum);
                   HttpResponse response = httpclient.execute(httppost);
                   entity = response.getEntity();              
               } catch (Exception e) {
                   Log.e(TAG, "Error in http connection" + e.toString(), e);
                   exception = e;
                   return null;
               }
               BufferedReader reader = null;
               InputStream is = null;
               try {
                   is = entity.getContent();
                   reader = new BufferedReader(
                           new InputStreamReader(is, ENCODING), 8);
                   sb = new StringBuilder();
    
                   String line = null;
                   while ((line = reader.readLine()) != null) {
                       sb.append(line + "\n");
                   }
                   
                   webData = sb.toString();
               } catch (Exception e) {
                   Log.e(TAG, "Error converting result " + e.toString(), e);
                   exception = e;
                   return null;
               } finally {
                   try {
                       reader.close();
                       is.close();
                   } catch (IOException e) {
                       Log.e(TAG, "Unexpected Error" + e.toString(), e);
                   }
               }
    
               try {
                   jsonArray = new JSONArray(webData);
                   JSONObject jsonData = null; 
                   for (int i = 0; i < jsonArray.length(); i++) {
                       jsonData = jsonArray.getJSONObject(i);
                       PFname= jsonData.getString(KEY_FNAME);
                       PSname= jsonData.getString(KEY_SNAME);
                       PLname= jsonData.getString(KEY_LNAME);
                       PIDmas[j] = jsonData.getInt(KEY_ID);j++;
                       PatientFIO = PatientFIO + PFname + " " + PSname + " " + PLname + ",";
                   }
               } catch (JSONException e) {
                   Log.e(TAG, "Bad json " + e.toString(), e);
                   exception = e;
                   return null;
               } catch (ParseException e) {
                   Log.e(TAG, "Error converting result " + e.toString(), e);
                   exception = e;
                   return null;
               }
               return null;
           }
           
           @Override
           protected void onPreExecute()
           {
                //----------------------------------------
                PFname = editFname.getText().toString();
                PSname = editSname.getText().toString();
                PLname = editLname.getText().toString();
                
                AdressStreet = editAdressStreet.getText().toString();
                
                if(!editAdressNum.getText().toString().equals(null)&&!editAdressNum.getText().toString().equals("")&&
                        !editAdressNum.getText().toString().equals(" ")){
                AdressNum =editAdressNum.getText().toString();
                }
                else AdressNum = "1";
                //-----
               PatientFIO = "";
           }
           @Override
           protected void onPostExecute(Void result) {
               if (exception != null) {
                   Toast.makeText(VizovActivity.this,
                           "Error while getting data from web server",
                           Toast.LENGTH_SHORT).show();
               } 
                //----------------------------------------
            Intent intent = new Intent(VizovActivity.this, FoundActivity.class);
            intent.putExtra("PIDmas", PIDmas);
            intent.putExtra("PatientFIO", PatientFIO);
            startActivity(intent);
           }
       }
       //-----------------------------------------------------------------------------
}
Этот класс должен осуществлять поиск по бд с помощью скрипта:
PHP
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
<?php 
mysql_connect("db","bd","password");
mysql_select_db("bd"); 
 
mysql_set_charset( 'utf8' );                    
 
if (isset($_GET['search']))
{
$Fname = iconv('cp1251','utf-8',$_GET['Fname']);
$Sname = iconv('cp1251','utf-8',$_GET['Sname']);
$Lname = iconv('cp1251','utf-8',$_GET['Lname']);
 
$AdressStreet = iconv('cp1251','utf-8',$_GET['AdressStreet']);
$AdressNum    = iconv('cp1251','utf-8',$_GET['AdressNum']);
 
$sql=mysql_query(
"select * from Patients
where 
   (LOWER(PFname) = LOWER('".$Fname."')
or LOWER(PSname) = LOWER('".$Sname."')
or LOWER(PLname) = LOWER('".$Lname."'))
 
or (LOWER(AdressStreet) = LOWER('".$AdressStreet."')
or AdressNum = '".$AdressNum."')"); 
   
while($row=mysql_fetch_assoc($sql))             
$output[]=$row; 
print json_fix_cyr(json_encode($output));
}
    
mysql_close();
 
 
function json_fix_cyr($json_str) { 
 $cyr_chars = array ( 
 '\u0430' => 'а', '\u0410' => 'А', 
 '\u0431' => 'б', '\u0411' => 'Б', 
 '\u0432' => 'в', '\u0412' => 'В', 
 '\u0433' => 'г', '\u0413' => 'Г', 
 '\u0434' => 'д', '\u0414' => 'Д', 
 '\u0435' => 'е', '\u0415' => 'Е', 
 '\u0451' => 'ё', '\u0401' => 'Ё', 
 '\u0436' => 'ж', '\u0416' => 'Ж', 
 '\u0437' => 'з', '\u0417' => 'З', 
 '\u0438' => 'и', '\u0418' => 'И', 
 '\u0439' => 'й', '\u0419' => 'Й', 
 '\u043a' => 'к', '\u041a' => 'К', 
 '\u043b' => 'л', '\u041b' => 'Л', 
 '\u043c' => 'м', '\u041c' => 'М', 
 '\u043d' => 'н', '\u041d' => 'Н', 
 '\u043e' => 'о', '\u041e' => 'О', 
 '\u043f' => 'п', '\u041f' => 'П', 
 '\u0440' => 'р', '\u0420' => 'Р', 
 '\u0441' => 'с', '\u0421' => 'С', 
 '\u0442' => 'т', '\u0422' => 'Т', 
 '\u0443' => 'у', '\u0423' => 'У', 
 '\u0444' => 'ф', '\u0424' => 'Ф', 
 '\u0445' => 'х', '\u0425' => 'Х', 
 '\u0446' => 'ц', '\u0426' => 'Ц', 
 '\u0447' => 'ч', '\u0427' => 'Ч', 
 '\u0448' => 'ш', '\u0428' => 'Ш', 
 '\u0449' => 'щ', '\u0429' => 'Щ', 
 '\u044a' => 'ъ', '\u042a' => 'Ъ', 
 '\u044b' => 'ы', '\u042b' => 'Ы', 
 '\u044c' => 'ь', '\u042c' => 'Ь', 
 '\u044d' => 'э', '\u042d' => 'Э', 
 '\u044e' => 'ю', '\u042e' => 'Ю', 
 '\u044f' => 'я', '\u042f' => 'Я', 
 
 '\r' => '', 
 '\n' => '<br />', 
 '\t' => '' 
 ); 
 
 foreach ($cyr_chars as $cyr_char_key => $cyr_char) { 
 $json_str = str_replace($cyr_char_key, $cyr_char, $json_str); 
 } 
 return $json_str; 
}
?>
При английских значениях поля editFname и пустых остальных работает нормально, а при русских, если ввести в поле editAdressNum значение, не совпадающее с соответствующим текущим значением editFname или оставить пустым, то вылетает ошибка:
Кликните здесь для просмотра всего текста
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): Bad json org.json.JSONException: Value null<!-- of type java.lang.String cannot be converted to JSONArray
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): org.json.JSONException: Value null<!-- of type java.lang.String cannot be converted to JSONArray
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at org.json.JSON.typeMismatch(JSON.java:111)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at org.json.JSONArray.<init>(JSONArray.java:91)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at org.json.JSONArray.<init>(JSONArray.java:103)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at com.example.med.VizovActivity$TaskNamesPatients.doInBackground(VizovActivity.java:152)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at com.example.med.VizovActivity$TaskNamesPatients.doInBackground(VizovActivity.java:1)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-27 17:14:57.731: E/com.example.med.VizovActivity(3379): at java.lang.Thread.run(Thread.java:856)

В скрипте кодировка utf8.

Добавлено через 21 час 57 минут
Думал, что возможна ошибка была из за возвращаемого html вместе с json. Исправил. Не помогло.
Какие возможны варианты?

Добавлено через 1 час 27 минут
Решено. Дело было в кодировке. В скрипте шла конвертация
Java
1
$Lname = iconv('cp1251','utf-8',$_GET['Lname']);
Без неё не выводилось в браузере, а с ней в андроиде были ошибки. Пришлось ампутировать.
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
30.05.2013, 18:16  [ТС]     Удалённая база данных MySQL, php, android #39
Продолжу писать в эту тему, т.к. суть вопроса схожа с предыдущими.

Отправляю пост-запрос скрипту. В браузере проходит. Здесь вылетают ошибки. Вот логи:
Java
1
2
3
4
5
6
7
8
9
10
11
12
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416): Error in http connectionjava.lang.IllegalArgumentException: Illegal character in query at index 62: [url]http://medplus.hut4.ru/vizovi.php?add&FID=1&why=rana&PFIO=Alex[/url] Kent Dolson&adress=st. Angels 19&MedName=bint&Nmed=4&Vmed=0&diagnos=ranko
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416): java.lang.IllegalArgumentException: Illegal character in query at index 62: [url]http://medplus.hut4.ru/vizovi.php?add&FID=1&why=rana&PFIO=Alex[/url] Kent Dolson&adress=st. Angels 19&MedName=bint&Nmed=4&Vmed=0&diagnos=ranko
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at java.net.URI.create(URI.java:727)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at com.example.med.DescribeActivity$TaskCall.doInBackground(DescribeActivity.java:103)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at com.example.med.DescribeActivity$TaskCall.doInBackground(DescribeActivity.java:1)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-30 14:05:29.168: E/com.example.med.DescribeActivity(1416):   at java.lang.Thread.run(Thread.java:856)
и код класса:
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package com.example.med;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.Activity;
import android.content.Intent;
import android.net.ParseException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
 
public class DescribeActivity extends Activity implements OnClickListener{
    int FID;
    String why;
    String PFIO;
    String adress;
    String MedName;
    String Nmed;
    String Vmed;
    String diagnos;
    TaskCall task;
    EditText editWhy,editMedName, editNmed, editVmed, editDiagnos;
    Button buttonAdd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_describe);
        
        editWhy = (EditText)findViewById(R.id.editWhy);
        editMedName = (EditText)findViewById(R.id.editMedName);
        editNmed = (EditText)findViewById(R.id.editNmed);
        editVmed = (EditText)findViewById(R.id.editVmed);
        editDiagnos = (EditText)findViewById(R.id.editDiagnos);
        
        buttonAdd = (Button)findViewById(R.id.buttonAdd);
        buttonAdd.setOnClickListener(this);
        //-получим id фельдшера    
        Intent intent = getIntent();
        FID = intent.getIntExtra("FID", -1);
        PFIO = intent.getStringExtra("Pfio");
        adress = intent.getStringExtra("Adress");
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (v.getId() == R.id.buttonAdd)
        {
            task = new TaskCall();
            task.execute();
        }
        
    }
    //-------получение имён пациентов--------------------------------------------
 
        //-----------------------------
        
            private static final String TAG = DescribeActivity.class.getName();
             
            String HOST = "http://medplus.hut4.ru/vizovi.php?add";
            
            private static final String ENCODING = "utf8";
       
           public class TaskCall extends AsyncTask<Void, Void, Void> {           
               public static final String KEY_VID = "VID";
               public static final String KEY_FID = "FID";
               public static final String KEY_why = "why";
               public static final String KEY_date = "date";
               public static final String KEY_FFIO = "FFIO";
               public static final String KEY_PFIO = "PFIO";
               public static final String KEY_adress = "adress";
               public static final String KEY_MedName = "MedName";
               public static final String KEY_Nmed = "Nmed";
               public static final String KEY_Vmed = "Vmed";
               public static final String KEY_diagnos = "diagnos";
                          
               private JSONArray jsonArray;
               private String webData = null;
               private StringBuilder sb = null;
               private Throwable exception;
         
               @Override
               protected Void doInBackground(Void... params) {
                   HttpEntity entity = null;
                   try {
                       HttpClient httpclient = new DefaultHttpClient();
                       HttpPost httppost = new HttpPost(HOST+"&FID="+FID+"&why="+why+
                 "&PFIO="+PFIO+"&adress="+adress+"&MedName="+MedName+"&Nmed="+Nmed+"&Vmed="+Vmed+"&diagnos="+diagnos);
                      /* HttpResponse response =*/ httpclient.execute(httppost);
                       //entity = response.getEntity();              
                   } catch (Exception e) {
                       Log.e(TAG, "Error in http connection" + e.toString(), e);
                       exception = e;
                       return null;
                   }
                return null;
               }
               
               @Override
               protected void onPreExecute()
               {
                   why = editWhy.getText().toString();
                   MedName = editMedName.getText().toString();
                   Nmed = editNmed.getText().toString();
                   Vmed = editVmed.getText().toString();
                   diagnos = editDiagnos.getText().toString();
               }
               @Override
               protected void onPostExecute(Void result) {
                   if (exception != null) {
                       Toast.makeText(DescribeActivity.this,
                               "Error while getting data from web server",
                               Toast.LENGTH_SHORT).show();
                   } 
                   else Toast.makeText(DescribeActivity.this,
                           "Данные сохранены.",
                           Toast.LENGTH_SHORT).show();
               }
           }
           //-----------------------------------------------------------------------------
 
}
В формировании запроса ошибок быть не должно. Подключение к сети в отдельном потоке.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2013, 18:50     Удалённая база данных MySQL, php, android
Еще ссылки по теме:
Android Android, ListView, база данных SQLite
Android Удаленная база данных для Android
Android Android, готовая база sql
Android MySQL и Android
Android подключение к mysql! Android

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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.05.2013, 18:50     Удалённая база данных MySQL, php, android #40
мне кажется проблема в пробелах, не видел ссылок с пробелами.

Добавлено через 40 секунд
для отправки данных используют POST

Добавлено через 23 секунды
GET для запросов.

Добавлено через 31 секунду
попробуйте заменить пробелы на "%20"
Yandex
Объявления
30.05.2013, 18:50     Удалённая база данных MySQL, php, android
Ответ Создать тему
Опции темы

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