Android, Wie Sie nur bestimmte Einträge in der Liste anzeigen aus dem gleichen array?

Habe ich nach mehreren tutorials, die haben mich erfolgreich bei der Beschaffung von Informationen aus meiner Datenbank von meiner website zu meiner app, dann kann ich es anzeigen in einer Liste anzeigen, aber was ich tun möchte, ist nicht die komplette Liste, ich möchte ein paar Schaltflächen, mit denen Sie mir zeigen nur die Daten, die bestimmten Kriterien entsprechen, wie unten 1 zeigen nur Elemente in der Liste medio=Periodicos und Taste 2 zeigen Sie Elemente, medio= - Radios hier ist der code, den ich verwende

in meiner Haupttätigkeit

FancyAdapter aa = null;
static ArrayList<String> resultRow;

//after onCreate
//this button I'm usin now but I'm getting the hole list!
Button periodicos = (Button) findViewById(R.id.btnPeriodicos);
            periodicos.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                weballamar = "http://www.mysite.com/mydbjsonstring.php";
                webcall();
            }});

//webcall gets the info from the internet and displays the list
public void webcall(){
    ListView myListView = (ListView) findViewById(R.id.mylistView);
    aa = new FancyAdapter();
    myListView.setOnItemClickListener(onPeriodicosListClick);
    myListView.setAdapter(aa);
    PeriodicosListLayout.setVisibility(View.VISIBLE);
    webLayout.setVisibility(View.GONE);

    try {
        String result = "";
                    try {
                        HttpClient httpclient = new DefaultHttpClient();
                        HttpPost httppost = new HttpPost(weballamar);
                        //httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                        HttpResponse response = httpclient.execute(httppost);
                        HttpEntity entity = response.getEntity();
                        InputStream webs = entity.getContent();
                        //convert response to string
                        try {
                            BufferedReader reader = new BufferedReader(
                                    new InputStreamReader(webs, "iso-8859-1"), 8);
                            StringBuilder sb = new StringBuilder();
                            String line = null;
                            while ((line = reader.readLine()) != null) {
                                sb.append(line + "\n");
                            }
                            webs.close();

                            result = sb.toString();
                        } catch (Exception e) {
                            Log.e("log_tag", "Error converting result " + e.toString());
                        }
                    } catch (Exception e) {
                        Log.e("log_tag", "Error in http connection " + e.toString());
                    }

                    //parse json data
                    try {
                        JSONArray jArray = new JSONArray(result);
                        for (int i = 0; i < jArray.length(); i++) {
                            JSONObject json_data = jArray.getJSONObject(i);
                            webResult resultRow = new webResult();
                            resultRow._id = json_data.getString("id");
                            resultRow.Name = json_data.getString("Id_Nombre");
                            resultRow.Medio = json_data.getString("Medio");
                            resultRow.Pais = json_data.getString("Pais");
                            resultRow.Estado = json_data.getString("Estado");
                            resultRow.Ciudad = json_data.getString("Ciudad");
                            resultRow.website = json_data.getString("website");
                            resultRow.Url = json_data.getString("Url");
                            resultRow.Url2 = json_data.getString("Url2");
                            resultRow.InfAnex = json_data.getString("InfAnex");
                            arrayOfWebData.add(resultRow);
                        }
                    } catch (JSONException e) {
                        Log.e("log_tag", "Error parsing data " + e.toString());
                    }
    } catch (Exception e) {
        //this is the line of code that sends a real error message to the
        //log
        Log.e("ERROR", "ERROR IN CODE: " + e.toString());
        //this is the line that prints out the location in
        //the code where the error occurred.
        e.printStackTrace();
    }
}

class FancyAdapter extends ArrayAdapter<webResult> {
    FancyAdapter() {
        super(mainActivity.this,
                android.R.layout.simple_list_item_1, arrayOfWebData);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            LayoutInflater inflater = getLayoutInflater();
            convertView = inflater.inflate(R.layout.listitem, null);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.populateFrom(arrayOfWebData.get(position));

        return (convertView);
    }
}

class ViewHolder {
    public TextView name = null;
    public TextView estado = null;
    public TextView ciudad = null;
    ViewHolder(View row) {
        name = (TextView) row.findViewById(R.id.periodicoName);
        estado = (TextView) row.findViewById(R.id.periodicoEstado);
        ciudad = (TextView) row.findViewById(R.id.periodicoCiudad);
    }

    void populateFrom(webResult r) {
        name.setText(r.Name);
        estado.setText(r.Estado);
        ciudad.setText(r.Ciudad);
    }
}

wie Sie sehen können, ich' anzeigen der vollständigen Liste der Spalten, die Namen der Stände und Städte in meiner Liste ansehen, aber die Liste enthält Elemente, die in der medio-Spalte sind entweder periodisch oder radio, also, wie kann ich meinen adapter unterscheiden und wählen, ob nur diejenigen, die Hexe medio=periodico, von dort könnte ich vielleicht in der Lage, das Gegenteil zu tun, um wählen Sie die medio=radio
Tahnks

InformationsquelleAutor zvzej | 2012-04-30
Schreibe einen Kommentar