Probleme mit ListView / ArrayAdapter

Arno23

Mitglied
Hi!

Ich möchte gerne in einer App die Gekoppelten Geräte in einer Liste anzeigen, die Bluetooth-Umgebung in einer anderen. Ich kämpfe jetzt seit vorgestern daran, mit SetListAdapter bestimmte Listen zu benennen. Als ich nur die paired devices in einer liste anzeigen wollte, ging es noch. Als ich aber die BT-Umgebung dazugenommen hab, zeigt er in den Listen gar keine Inhalte mehr an.

Mein Code ist folgender:

Java:
public void pairing(){
    	
        mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mPairedDevices = new ArrayList<String>();
        
        Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
       
        if (pairedDevices.size() > 0) {
            findViewById(R.id.title_pd).setVisibility(View.VISIBLE);
            for (BluetoothDevice device : pairedDevices) {
             	mPairedDevices.add(device.getName() + "\n" + device.getAddress());
            }
        }
        
        this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mPairedDevices) {
        	@Override
        	public View getView(int position, View convertView, ViewGroup parent) {
        		View row;
        		        		
        		if (null == convertView) {
        			row = mInflater.inflate(R.layout.list_item, null);
        		} else {
        			row = convertView;
        		}
        		
        		TextView tv = (TextView) row.findViewById(android.R.id.text1);
        		tv.setText(getItem(position));
        		
        		return row;
        	}
        });

für die Liste mit den paired devices. Vorher wurde mPairedDevices als List definiert. Ich kann aus diesen Codeschnipseln, die ich mir zusammengesucht habe (ich bin Umsteiger von Webdesign & Delphi) leider nicht rauslesen, wo eine bestimmte ListView definiert wird. Die ListViews sind im Layout vorhanden, text1 in list_item.xml
Meine Frage:
Wo weise ich den Inhalt einer bestimmten Liste zu?
und: Kann ich zwei Listen in einer ListActivity füllen?

Gruß,
Arno
 
Nein du kannst afaik keine zwei verschiedenen Listen haben. Du kannst alles in eine tun, und dann so eine Art überschrift, wie man es in den Einstellungen sieht machen. Oder einfach 2 Tabs mit 2 Listen 😉
 
Gut, danke! Hätt ich das mal vorher gewusst 😳

Mein nächstes Problem sieht aus wie folgt:
Wenn ich über den Broadcast-Receiver die Bluetooth-Umgebung scanne funktioniert das wunderbar, wenn kein BT-Gerät in der Nähe ist. Wenn ich aber bei einem Gerät BT einschalte, stürzt meine App ab. Der Code meines BCRs ist:

Java:
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
  	
    	@Override
        public void onReceive(Context context, Intent intent) {
        	
            String action = intent.getAction();
            
            Toast.makeText(btsend.this, "newdevices!", Toast.LENGTH_LONG).show();
            
            if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
                	mNewDevices.add(device.getName() + "\n" + device.getAddress());
                }
            }                

            newdevices();
        }

    };

newdevices() funktioniert soweit denke ich, da ich dort u.A. auch mNewDevices.add("bla"); verwende was auch ausgegeben wird.

Wo liegt mein Fehler? Habe nach String action = intent.getAction(); ein Toast eingefügt welches ebenfalls nicht erscheint falls ich ein BT-Gerät in der Nähe habe, vorher stürzt das App ab. Liegt der Fehler in String action = intent.getAction();??
 

Zurück
Oben