dynamischen Spinner in Popup

Z

zauber3r

Erfahrenes Mitglied
23
hi,

ich habe eine Spinnerauswahl, die daten aus einer mysql-db holt. klappt alles soweit sehr gut.

nun soll das ganze aber nicht passieren wenn die activity gestartet wird, sondern wenn ich einen button clicke, dann ein popup aufgehen und darin der spinner aufgehen.

unten ist der code, für die normale spinner aktion.
wie führe ich die in einem popup aus, in einer anderen activity?

Code:
package com.example.phpmysql;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
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 KstHolenFuerAusbuchungActivity extends Activity implements OnItemSelectedListener {
    String spinnerwahl;
    private Spinner spinnerKst;
    // array list for spinner adapter
    private ArrayList<Category> categoriesList;
    ProgressDialog pDialog;
    
    // API urls
    // Url to get all categories
    private String URL_CATEGORIES = "URLXXXXXXX";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_kstmenu);
        spinnerKst = (Spinner) findViewById(R.id.spinKst);
                    
        categoriesList = new ArrayList<Category>();

        // spinner item select listener
        spinnerKst.setOnItemSelectedListener(this);

        new GetCategories().execute();

    }

    /**
     * Adding spinner data
     * */
    private void populateSpinner() {
        List<String> lables = new ArrayList<String>();
        
        //txtCategory.setText("");

        for (int i = 0; i < categoriesList.size(); i++) {
            lables.add(categoriesList.get(i).getKstalt());
        }

        // Creating adapter for spinner
        ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, lables);

        // Drop down layout style - list view with radio button
        spinnerAdapter
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        spinnerKst.setAdapter(spinnerAdapter);
    }

    /**
     * Async task to get all food categories
     * */
    private class GetCategories extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(KstHolenFuerAusbuchungActivity.this);
            pDialog.setMessage("Lade Kostenstellen...");
            pDialog.setCancelable(false);
            pDialog.show();

        }

        @Override
        protected Void doInBackground(Void... arg0) {
             
             // Preparing post params
           // List<NameValuePair> params = new ArrayList<NameValuePair>();
            //params.add(new BasicNameValuePair("kstalt", MainActivity.kst));
            
            ServiceHandler jsonParser = new ServiceHandler();
            String json = jsonParser.makeServiceCall(URL_CATEGORIES, ServiceHandler.GET);
            Log.v(json, "JSON");
            Log.e("Response: ", "> " + json);

            if (json != null) {
                try {
                    JSONObject jsonObj = new JSONObject(json);
                    if (jsonObj != null) {
                        JSONArray kstn = jsonObj
                                .getJSONArray("kstn");                        

                        for (int i = 0; i < kstn.length(); i++) {
                            JSONObject catObj = (JSONObject) kstn.get(i);
                            Category cat = new Category(catObj.getString("kst"));
                            categoriesList.add(cat);
                        }
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }

            } else {
                Log.e("JSON Data", "Didn't receive any data from server!");
            }

            return null;
        }
        

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            if (pDialog.isShowing())
                pDialog.dismiss();
            populateSpinner();
        }

    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position,
            long id) {
        Toast.makeText(
                getApplicationContext(),
                        parent.getItemAtPosition(position).toString() + " Selected" ,
                Toast.LENGTH_LONG).show();
        
        spinnerwahl = parent.getItemAtPosition(position).toString();
        MainActivity.kst = spinnerwahl;
        Log.v(MainActivity.kst, "Spinnerwahl");
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {        
    }
    
    public void onClickAuswahl(View view){
       }
}
 
Was spricht dagegen, das ganze in einem Dialog(Fragment) zu packen und bei einem Klick auf den Button anzuzeigen?
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.383
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.923
OnkelLon
OnkelLon
S
Antworten
9
Aufrufe
1.151
swa00
swa00
Zurück
Oben Unten