1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

MySQl in ListView ausgeben

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Viktor R, 24.12.2011.

  1. Viktor R, 24.12.2011 #1
    Viktor R

    Viktor R Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    24.12.2011
    Hallo zusammen,

    ich habe schon einige Beispiele zum Titel gefunden, dennoch klappt es bei mir nicht. Nach dem ich die Activity starte, erhalte ich nur eine Textview, jedoch nicht ListView. Ich habe das php file im Browser geöffent, die Daten werden von der DB abgefragt. Ich vermute, dass es an der Übergabe an das JSON Objekt liegen kann, bin mir aber nicht sicher.
    Was ich gemacht habe:

    Android Manifest angepasst (Uses Permission...)
    Activity implementiert (Wäre ListActivity sinnvoller?)
    php script
    DB Treiber "mysql-connector-java-5.1.18-bin.jar" zum Projekt hinzugefügt
    main.xml mit einer Text und einer ListView erstellt

    Anbei poste ich mein Code:


    Code:
    public class DB_AbfrageActivity extends Activity {
        InputStream is;
        ArrayList<String> results=new ArrayList<String>();
        JSONObject json_data;
        ArrayList<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>();
        
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);       
        }
        
        public void getData(){
            String result="";
            
        try{
                HttpClient httpclient=new DefaultHttpClient();
                HttpPost httppost=new HttpPost("http://localhost/mysql.php");
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response=httpclient.execute(httppost);
                HttpEntity entity=response.getEntity();
                is=entity.getContent();
            }catch (Exception e){
                Log.e("log_tag", "Fehler bei der http Verbindung "+e.toString());
            }
            
            try{
                BufferedReader reader=new BufferedReader(new InputStreamReader(is,"utf8_general_ci"),8);
                StringBuilder sb=new StringBuilder();
                String line="0";
                while ((line=reader.readLine())!=null){
                    sb.append(line+"\n");
                }
                is.close();
                result=sb.toString();
            }catch (Exception e){
                Log.e("log_tag","Error converting result "+e.toString());
            }
            
            try{
                
                JSONArray jArray=new JSONArray(result);
                for(int i=0;i<jArray.length();i++){
                    json_data=jArray.getJSONObject(i);
                    results.add((String) json_data.get("artikel")+" "+json_data.get("menge")+" "+json_data.get("bez")+" "+json_data.get("zeit"));
                }
                fillList();
            }catch (JSONException e){
                Log.e("log_tag", "Error parsing data "+e.toString());
            }
        }
        
        public void fillList(){
            ListAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, results);
            ListView list=(ListView)findViewById(R.id.listView1);
            list.setAdapter(adapter);
        }
        
    }
    
    gruß

    Viktor
     
  2. Maddi, 24.12.2011 #2
    Maddi

    Maddi Android-Hilfe.de Mitglied

    Beiträge:
    82
    Erhaltene Danke:
    10
    Registriert seit:
    18.07.2010
    Versuchs mal so:
    Code:
     String result = EntityUtils.toString(entity, HTTP.UTF_8);
    
        // parse json data
        try {
            JSONArray jArray = new JSONArray(result);                           
            for (int i = 0; i < jArray.length(); i++) {
            JSONObject json_data = jArray.getJSONObject(i);
    ....
    
    oder einfach
    Code:
    ...
    sb.deleteCharAt(0);
    String result = sb.toString();
    result.trim();
            }catch (Exception e){             Log.e("log_tag","Error converting result "+e.toString());         }
    ...
    
     

Diese Seite empfehlen