I'm really new in programming. I'm doing an app with tabs and each tab is a fragment, and within one of this tab, i want to send some data to the server. Here's the code, looks like all the get() something function is not working under fragment. (I've solved this problem) Now the program couldn't run.
Here's my code
public class TabActivityMain extends Fragment implements OnClickListener {
TextView tvIsConnected;
EditText etName,etCountry,etTwitter;
Button btnPost;
Person person;
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View V = inflater.inflate(R.layout.activity_tab_activity_main, container, false);
        tvIsConnected = (TextView) V.findViewById(R.id.tvIsConnected);
        etName = (EditText) V.findViewById(R.id.etName);
        etCountry = (EditText) V.findViewById(R.id.etCountry);
        etTwitter = (EditText) V.findViewById(R.id.etTwitter);
        btnPost = (Button) V.findViewById(R.id.btnPost);
        // check if you are connected or not
        if(isConnected()){
            tvIsConnected.setBackgroundColor(0xFF00CC00);
            tvIsConnected.setText("You are conncted");
        }
        else{
            tvIsConnected.setText("You are NOT conncted");
        }
        // add click listener to Button "POST"
        btnPost.setOnClickListener(this);
        return V;
    }
public static String POST(String url, Person person){
    InputStream inputStream = null;
    String result = "";
    try {
        // 1. create HttpClient
        HttpClient httpclient = new DefaultHttpClient();
        // 2. make POST request to the given URL
        HttpPost httpPost = new HttpPost(url);
        String json = "";
        // 3. build jsonObject
        JSONObject jsonObject = new JSONObject();
        jsonObject.accumulate("name", person.getName());
        jsonObject.accumulate("country", person.getCountry());
        jsonObject.accumulate("twitter", person.getTwitter());
        // 4. convert JSONObject to JSON to String
        json = jsonObject.toString();
        // ** Alternative way to convert Person object to JSON string usin Jackson Lib 
        // ObjectMapper mapper = new ObjectMapper();
        // json = mapper.writeValueAsString(person); 
        // 5. set json to StringEntity
        StringEntity se = new StringEntity(json);
        // 6. set httpPost Entity
        httpPost.setEntity(se);
        // 7. Set some headers to inform server about the type of the content   
        httpPost.setHeader("Accept", "application/json");
        httpPost.setHeader("Content-type", "application/json");
        // 8. Execute POST request to the given URL
        HttpResponse httpResponse = httpclient.execute(httpPost);
        // 9. receive response as inputStream
        inputStream = httpResponse.getEntity().getContent();
        // 10. convert inputstream to string
        if(inputStream != null)
            result = convertInputStreamToString(inputStream);
        else
            result = "Did not work!";
    } catch (Exception e) {
        Log.d("InputStream", e.getLocalizedMessage());
    }
    // 11. return result
    return result;
}
public boolean isConnected(){
    ConnectivityManager connMgr = (ConnectivityManager) getActivity().getSystemService(Activity.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
        if (networkInfo != null && networkInfo.isConnected()) 
            return true;
        else
            return false;    
}
@Override
public void onClick(View view) {
    switch(view.getId()){
        case R.id.btnPost:
            if(!validate())
                Toast.makeText(getActivity().getBaseContext(), "Enter some data!", Toast.LENGTH_LONG).show();
            // call AsynTask to perform network operation on separate thread
            new HttpAsyncTask().execute("http://hmkcode.appspot.com/jsonservlet");
        break;
    }
}
private class HttpAsyncTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {
        person = new Person();
        person.setName(etName.getText().toString());
        person.setCountry(etCountry.getText().toString());
        person.setTwitter(etTwitter.getText().toString());
        return POST(urls[0],person);
    }
    // onPostExecute displays the results of the AsyncTask.
    @Override
    protected void onPostExecute(String result) {
        Toast.makeText(getActivity().getBaseContext(), "Data Sent!", Toast.LENGTH_LONG).show();
   }
}
private boolean validate(){
    if(etName.getText().toString().trim().equals(""))
        return false;
    else if(etCountry.getText().toString().trim().equals(""))
        return false;
    else if(etTwitter.getText().toString().trim().equals(""))
        return false;
    else
        return true;    
}
private static String convertInputStreamToString(InputStream inputStream) throws IOException{
    BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
    String line = "";
    String result = "";
    while((line = bufferedReader.readLine()) != null)
        result += line;
    inputStream.close();
    return result;
} 
}
and the log cat info is
09-09 09:30:59.907: E/AndroidRuntime(1311): FATAL EXCEPTION: main
09-09 09:30:59.907: E/AndroidRuntime(1311): Process: com.zanqi.mainpage1, PID: 1311
09-09 09:30:59.907: E/AndroidRuntime(1311): java.lang.SecurityException: ConnectivityService: Neither user 10063 nor current process has android.permission.ACCESS_NETWORK_STATE.
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.os.Parcel.readException(Parcel.java:1465)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.os.Parcel.readException(Parcel.java:1419)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:813)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:563)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at com.zanqi.mainpage1.TabActivityMain.isConnected(TabActivityMain.java:128)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at com.zanqi.mainpage1.TabActivityMain.onCreateView(TabActivityMain.java:58)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1504)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:942)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:482)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:283)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.View.dispatchAttachedToWindow(View.java:12585)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2458)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2465)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2465)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2465)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1217)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at   android.view.Choreographer.doCallbacks(Choreographer.java:574)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.Choreographer.doFrame(Choreographer.java:544)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.os.Handler.handleCallback(Handler.java:733)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.os.Handler.dispatchMessage(Handler.java:95)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.os.Looper.loop(Looper.java:136)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at android.app.ActivityThread.main(ActivityThread.java:5017)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at java.lang.reflect.Method.invokeNative(Native Method)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at java.lang.reflect.Method.invoke(Method.java:515)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at    com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
09-09 09:30:59.907: E/AndroidRuntime(1311):     at dalvik.system.NativeStart.main(Native Method)
 
     
     
    