Auf Thema antworten

So, hab mich nochmals beschäftigt und viel Gelesen "gerlernt".


Nun habe ich JSONParser ausgelagert und ein bisschen Struktur reingebracht (hoffe ich natürlich) :).

Jedoch noch ein Par Unklarheiten:

[CODE]

import android.app.ProgressDialog;

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.Button;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.TextView;

import android.widget.Toast;


import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;


import java.util.ArrayList;

import java.util.HashMap;


/**

 * Created by Roger on 11.03.2015.

 */

public class menu4_Fragment extends Fragment {

    View rootview;


    ListView list;

    TextView ver;

    TextView name;

    TextView api;

    Button Btngetdata;

    ArrayList<HashMap<String, String>> oslist = new ArrayList<HashMap<String, String>>();

    //URL to get JSON Array

    private static String url = "Linkzurdblink";

    //JSON Node Names

    private static final String TAG_OS = "android";

    private static final String TAG_VER = "ver";

    private static final String TAG_NAME = "name";

    private static final String TAG_API = "api";

    JSONArray android = null;


    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        rootview = inflater.inflate(R.layout.menu4_layout, container, false);

        final ListView listview = (ListView) rootview.findViewById(R.id.listView1);



        oslist = new ArrayList<HashMap<String, String>>();

        Btngetdata = (Button) rootview.findViewById(R.id.getdata);

        Btngetdata.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                new JSONParse().execute();

            }

        });

    }

    private class JSONParse extends AsyncTask<String, String, JSONObject> {

        private ProgressDialog pDialog;

        @Override

        protected void onPreExecute() {

            super.onPreExecute();

            ver = (TextView)rootview.findViewById(R.id.vers);

            name = (TextView)rootview.findViewById(R.id.name);

            api = (TextView)rootview.findViewById(R.id.api);

            pDialog = new ProgressDialog(MainActivity.this);

            pDialog.setMessage("Getting Data ...");

            pDialog.setIndeterminate(false);

            pDialog.setCancelable(true);

            pDialog.show();

        }

        @Override

        protected JSONObject doInBackground(String... args) {

            JSONParser jParser = new JSONParser();

            // Getting JSON from URL

            JSONObject json = jParser.getJSONFromUrl(url);

            return json;

        }

        @Override

        protected void onPostExecute(JSONObject json) {

            pDialog.dismiss();

            try {

                // Getting JSON Array from URL

                android = json.getJSONArray(TAG_OS);

                for(int i = 0; i < android.length(); i++){

                    JSONObject c = android.getJSONObject(i);

                    // Storing  JSON item in a Variable

                    String ver = c.getString(TAG_VER);

                    String name = c.getString(TAG_NAME);

                    String api = c.getString(TAG_API);

                    // Adding value HashMap key => value

                    HashMap<String, String> map = new HashMap<String, String>();

                    map.put(TAG_VER, ver);

                    map.put(TAG_NAME, name);

                    map.put(TAG_API, api);

                    oslist.add(map);

                    list=(ListView)rootview.findViewById(R.id.list);

                    ListAdapter adapter = new SimpleAdapter(MainActivity.this, oslist,

                            R.layout.list_v,

                            new String[] { TAG_VER,TAG_NAME, TAG_API }, new int[] {

                            R.id.vers,R.id.name, R.id.api});

                    list.setAdapter(adapter);

                    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                        @Override

                        public void onItemClick(AdapterView<?> parent, View view,

                                                int position, long id) {

                            Toast.makeText(MainActivity.this, "You Clicked at "+oslist.get(+position).get("name"), Toast.LENGTH_SHORT).show();

                        }

                    });

                }

            } catch (JSONException e) {

                e.printStackTrace();

            }

        }

    }

}

[/CODE]


Nun Folgende Zeilen besitzen Fehler die ich nicht lösen kann:

[CODE]pDialog = new ProgressDialog(menu4_Fragment.this);

ListAdapter adapter = new SimpleAdapter(MainActivity.this, oslist,


 Toast.makeText(MainActivity.this, "You Clicked at "+oslist.get(+position).get("name"), Toast.LENGTH_SHORT).show();

[/CODE]


Ich nehme an das dies durch die "Fragmente entsetht".



Oben