S
schnti
Neues Mitglied
- 0
Hallo zusammen,
ich suche verzweifelt die Möglichkeit eine ListView aus einem Thread heraus zu aktualisieren.
Ich habe folgenden Code:
Der Code funktioniert soweit, jedoch wird der ListView nur aktualisiert, wenn ich scrolle....
Kann mir jemand weitelfen?
Vielen Dank
ich suche verzweifelt die Möglichkeit eine ListView aus einem Thread heraus zu aktualisieren.
Ich habe folgenden Code:
Code:
import java.util.ArrayList;
import java.util.List;
import android.annotation.TargetApi;
import android.app.ListActivity;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends ListActivity {
WifiManager wifiManager;
private ArrayList<String> wlanArrayList = new ArrayList<String>();;
public ArrayAdapter<String> wlanArrayAdapter;
Button scanButton;
Thread searchThread;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wlanArrayAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, wlanArrayList);
setListAdapter(wlanArrayAdapter);
suchen();
}
public void suchen() {
wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Runnable updateThread = new Runnable() {
@TargetApi(14)
public void run() {
while (true) {
if (wifiManager.isWifiEnabled() == false) {
wifiManager.setWifiEnabled(true);
}
wlanArrayList.clear();
wifiManager.startScan();
List<ScanResult> WLANs = wifiManager.getScanResults();
try {
for (ScanResult WLAN : WLANs) {
wlanArrayList.add(WLAN.SSID + " | "
+ WLAN.frequency + " | " + WLAN.level);
}
wlanArrayAdapter.notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(updateThread);
thread.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Kann mir jemand weitelfen?
Vielen Dank