1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. WolfCH, 22.03.2013 #1
    WolfCH

    WolfCH Threadstarter Android-Hilfe.de Mitglied

    Hallo

    Ich habe einige Tutorials und Codebeispiele angeschaut.
    Nun kriege ich weder eine Fehlermeldung noch überhaupt Daten in die Listview. Die Activity bleibt also leer.

    PHP liefert aber korrekt aus.

    Woran kann das denn liegen??
    Wenn ich extends Activity zu extends ListActivity ändere, dann gibts ebenfalls keine Fehler aber dann stürzt die App ab. Problem: Ich kann nichts im ADV testen, hab schon mehrmals neu eingerichtet aber ich bekomm immer ein Installfehler und somit teste ich die App direkt auf meinem Androidhandy.

    Hier die sqlDBActivity:
    Code:
    public class sqlDBActivity extends Activity {
    	
    	final Context context = this;
    	
    	InputStream is;
    	ArrayList<String> results = new ArrayList<String>();
    	JSONObject json_data;
    	 
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.sql_db);
    		getData();
    		
    		//AlertBox (Info) anzeigen BETA TEST
    				AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
    
    					// set title
    					alertDialogBuilder.setTitle("BETA-TEST-DIALOG");
    
    					// set dialog message
    					alertDialogBuilder
    						.setMessage("Hier werden die aktuell erfassten Unwetterwarnungen aufgelistet. Betrifft nicht die aktiven Warnungen. (Noch Nicht).\nDieser Dialog wird Dich nur während des Betatests nerven.\n\u00A9 Kurz Dominic, SCV Switzerland")
    						.setCancelable(false)
    						.setPositiveButton("Nerv mich nicht!",new DialogInterface.OnClickListener() {
    							public void onClick(DialogInterface dialog,int id) {
    								// if this button is clicked, close
    								// current activity
    								dialog.cancel();
    							}
    						  });
    					
    					// create alert dialog
    					AlertDialog alertDialog = alertDialogBuilder.create();
    					
    					// show it
    					alertDialog.show();
    
    		
    		//Zurückbutton
    		
    		Button btnSQL_back = (Button)findViewById(R.id.btnSQL_back);
    
    		btnSQL_back.setOnClickListener(new View.OnClickListener()
    		{
    		    	@Override
    		    	public void onClick(View v) {
    		    	         // Activity-Aufruf hier rein.
    		    		Intent in = new Intent(sqlDBActivity.this,MainActivity.class);
    		    		in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    		    	    startActivity(in);
    		    		}
    		});
    		
    		
    	}
    	
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    	
    	public void getData() {
    
    		String result = "";
    		 ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    		
    		 try{
    		 HttpClient httpclient = new DefaultHttpClient();
    		 HttpPost httppost = new HttpPost("http://www.scvswitzerland.ch/test.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 = null;
    			 while ((line = reader.readLine()) != null) {
    			 sb.append(line + "n");
    			 } 
    			 is.close();
    			 sb.deleteCharAt(0);
    			 result=sb.toString();
    			 result.trim();
    			 //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++){
    			JSONObject json_data = jArray.getJSONObject(i);
    			 results.add((String) json_data.get("kanton") + " "+ json_data.get("ereignis"));
    			 } 
    		 fillList();
    			 }
    			 catch(JSONException e){
    			 Log.e("log_tag", "Error parsing data "+e.toString());
    			 }
    	}
    	
    	public void fillList() {
    		// this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
    		ListAdapter adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, results);
            ListView list=(ListView)findViewById(R.id.listView1);
            list.setAdapter(adapter);
    		 }
    	
    }



    Grüsschen
    Wolf
     
  2. soma-web, 23.03.2013 #2
    soma-web

    soma-web App-Anbieter (kostenpfl.)

    Schließ mal dein Handy an und gib uns mal die Fehlermeldung der LogCat
    Android Tutorial #2: How To Use The LogCat Tool To Debug Applications - YouTube

    Dann können wir dir auch gerne weiterhelfen.

    Der ursprüngliche Beitrag von 12:27 Uhr wurde um 12:57 Uhr ergänzt:

    Führst du den HTTP request im UIThread aus? Also nicht Synchron in einem anderen Thread`?
     
    Zuletzt von einem Moderator bearbeitet: 17.06.2015
  3. WolfCH, 23.03.2013 #3
    WolfCH

    WolfCH Threadstarter Android-Hilfe.de Mitglied

    Also mein Handy anschliessen am PC via USB und dann LogCat laufen lassen funzt bei mir iwie nicht. Habe einen MacBook Pro Retina.

    Der Emulator funktioniert aufgrund folgendem Fehler auch nicht:
    Egal ob ich die Funktion getData in einem Thread habe oder nicht, die App stürzt zwar nicht ab, aber ich bekomme keine Daten/Kein Text in das Listview.

    Gruss
     
  4. soma-web, 23.03.2013 #4
    soma-web

    soma-web App-Anbieter (kostenpfl.)

    Ein tipp mach dich schlau wie du die Logcat zumm laufen bekommst, das hilft enorm weiter. ich kenne viele entwickler die das auch auf dem Mac zum laufen gebracht haben. Danach bist du Definitv schlauer, weil du siehst was er denn beim parsen deines JSON Objects falsch macht.
    Noch ein Tipp pack das getData in ein asynctask oder einen Thread.
    Und Json Parsen mach ich mittlerweile nur noch mit Gson, das erzeugt dir gleich objekte mit denen du dann machen kannst was auch immer du willst.

    Viel Erfolg
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
ListView mit eigenem Layout zeigt im Querformat Items doppelt an Android App Entwicklung 24.06.2018
Eintrag in einer Datenbank mithilfe einer ListView löschen Android App Entwicklung 20.06.2018
Daten für eine Stundenplan-App Android App Entwicklung 23.05.2018
Daten speichern in einer Datei auf der jede Aktivität zugreifen kann Android App Entwicklung 12.05.2018
Daten von Android Wear zur Handy-App senden geht nicht Android App Entwicklung 03.04.2018
Sensible Daten löschen bei Diebstahl Android App Entwicklung 18.02.2018
ListView: fehler android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 Android App Entwicklung 11.01.2018
[OFFEN] Upload Foto mit php to mysql blob Android App Entwicklung 03.01.2018
[OFFEN] Youtube Link Teilen mittels Post auf PHP Script Android App Entwicklung 14.10.2017
[ERLEDIGT] Verbindung zu MS SQL DB von App aus möglich? Android App Entwicklung 05.09.2017
Du betrachtest das Thema "Externe SQL/PHP Daten in Listview" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.