public class Fragment3 extends Fragment implements OnClickListener { // 배송요청
..중략 ..
}
public void onClick(View v){
if(v.getId() == R.id.btn_order) {
if (null != MySpinner1 && null != MySpinner2 && null != MySpinner3 && null != MySpinner4 && null != MyedtText5 && null != MySpinner6 ) {
location = MySpinner1.getSelectedItem().toString();
group= MySpinner2.getSelectedItem().toString();
quantity = MySpinner3.getSelectedItem().toString();
weight = MySpinner4.getSelectedItem().toString();
memo = MyedtText5.getText().toString();
time = MySpinner6.getSelectedItem().toString();
PostData task1 = new PostData();
task1.execute(new String[]{"http://192.168.1.16/insertparcel.php"});
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_mainContainer, new Fragment4A());
transaction.commit();
}
else if(v.getId() == R.id.btn_ordercancel){
// FragmentA 앱개발로 돌아가기
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_mainContainer, new FragmentA());
transaction.commit();
}
}
}
private class PostData extends AsyncTask<String, Void, Boolean> { // 데이터를 보내는 메서드입니다.
@Override
protected void onPreExecute() {
}
@Override
protected Boolean doInBackground(String... urls) {
for(String url1 : urls){
try{
ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("location",location));
pairs.add(new BasicNameValuePair("group",group));
pairs.add(new BasicNameValuePair("quantity",quantity));
pairs.add(new BasicNameValuePair("weight",weight));
pairs.add(new BasicNameValuePair("memo",memo));
pairs.add(new BasicNameValuePair("time",time));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url1);
httppost.setEntity(new UrlEncodedFormEntity(pairs));
Log.d("pairs", "111"+pairs);
HttpResponse response = httpclient.execute(httppost);
Log.d("httppost", "111"+httppost);
Log.d("TAG", "111"+url1);
}
catch(ClientProtocolException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
}
return true;
}
protected void onPostExecute(Boolean result){
if(result == true){
ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("location",location));
pairs.add(new BasicNameValuePair("group",group));
pairs.add(new BasicNameValuePair("quantity",quantity));
pairs.add(new BasicNameValuePair("weight",weight));
pairs.add(new BasicNameValuePair("memo",memo));
pairs.add(new BasicNameValuePair("time",time));
Log.d("TAG", "111"+location);
Log.d("TAG", "111"+group);
Log.d("TAG", "111"+quantity);
Log.d("TAG", "111"+weight);
Log.d("TAG", "111"+memo);
Log.d("TAG", "111"+time);
}
else{
}
}
}
}
php문은 문제가 없는걸 확인했습니다.
위 코드는 db에 INSERT 하는 액!티!비!티 의 코드를 그대로 프래그먼트에서 사용해봤는데..
안드로이드client에서 보내는 데이터를 php에서 받질 못합니다. (로그에 에러도 없어서..추측이지만 확신합니다)
혹시 액티비티와 프래그먼트의 생명주기때문일까요? 어떤 조치를 해야하는지 문의드립니다.