2016-04-04 17 views
0

私は、Bluetooth対応のAPIを使用してリストビューにペアデバイスのリストを表示したいのですが、なぜそれが動作しないのかわかりません 私はクラスBluetoothDev結合されたすべてのデバイスの配列リストを返すgetDeviceメソッド。Listviewにペアリングされたデバイス(bluetooth api)を表示します

これは私のコードです:

MainActivity.java

package com.example.fatma.listviewcst; 

    import android.bluetooth.BluetoothAdapter; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.support.v7.app.AppCompatActivity; 
    import android.widget.ListView; 
    import android.widget.Toast; 

    public class MainActivity extends AppCompatActivity { 
     ListView listView; 
     BluetoothDev bluetoothDev; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 




      } 

     @Override 
     protected void onStart() { 
      super.onStart(); 

      BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
      if (bluetoothAdapter == null) { 
       Toast t = new Toast(this); 
        t.setText("Sorry your phone do not support Bluetooth"); 
       t.show(); 
      } else { 
       if (!bluetoothAdapter.isEnabled()) { 
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
        startActivityForResult(enableBtIntent,1);} 
      bluetoothDev=new BluetoothDev(); 
      listView=(ListView)findViewById(R.id.listView); 

      devList listeDev=new devList(this,R.layout.item,bluetoothDev.getDevices(bluetoothAdapter)); 
      listView.setAdapter(listeDev);} 
     } 
    } 

アダプタ

package com.example.fatma.listviewcst; 

import android.bluetooth.BluetoothDevice; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.TextView; 

import java.util.List; 

/** 
* Created by FATMA on 02/04/2016. 
*/ 
public class devList extends ArrayAdapter<BluetoothDevice>{ 
    Context context; 
    int resource; 


    public devList(Context context, int resource, List<BluetoothDevice> bluetoothDev) { 
     super(context, resource, bluetoothDev); 
     this.context=context; 
     this.resource=resource; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     //inflater charge le contenu d un fichier ds une vue 
     LayoutInflater inflater =(LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
     //false pour dire non pas attaché au root 
     View view =inflater.inflate(resource,parent,false); 
     TextView devName= (TextView) view.findViewById(R.id.devName); 
     TextView devMac= (TextView) view.findViewById(R.id.devMac); 

     devName.setText(getItem(position).getName()); 
     devMac.setText(getItem(position).getAddress()); 

     return view; 
    } 
} 

BluetoothDev.java

package com.example.fatma.listviewcst; 

import android.bluetooth.BluetoothAdapter; 
import android.bluetooth.BluetoothDevice; 

import java.util.ArrayList; 
import java.util.Set; 

/** 
* Created by FATMA on 02/04/2016. 
*/ 
public class BluetoothDev { 


    public ArrayList<BluetoothDevice> getDevices( BluetoothAdapter bluetoothAdapter) { 
     ArrayList<BluetoothDevice> arrayListBluetooth = new ArrayList<BluetoothDevice>(); 




       Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices(); 
// If there are paired devices 
       if (pairedDevices.size() > 0) { 
        // Loop through paired devices 
        for (BluetoothDevice device : pairedDevices) { 
         // Add the name and address to an array adapter to show in a ListView 
         arrayListBluetooth.add(device); 
        } 
       } 




      return arrayListBluetooth; 
     } 

    } 

一覧行のXml

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/devName" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/devMac" /> 

</relativeLayout> 

アクティビティレイアウト

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     tools:context="com.example.fatma.listviewcst.MainActivity"> 

     <ListView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/listView" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 
    </RelativeLayout> 
+0

bluetoothDev.getDevices(bluetoothAdapter)で値が取得されていることを確認しましたか? –

+0

はい、エラーは次のとおりです:致命的例外:メイン android.view.InflateException:バイナリXMLファイル行#2:エラーinflatingクラスrelativeLayout – fatma19

答えて

0

あなたがリスト項目のXMLに小さなケースrelativelayoutを使用しています。 ビューでは大文字と小文字が区別されます。 したがって、relativeLayoutの代わりに RelativeLayoutを使用してください。

+0

hhh私はすでにそれを変更して、それは動作します:) – fatma19

関連する問題