2015-10-19 20 views
0

我看到了代碼Here。 public void displayPeers(最終的WifiP2pDeviceList對象)如何在這裏工作。 當我在設備上運行它顯示在設備中的列表視圖,但它如何獲得設備列表沒有initializ方法即ie。 displaypeers()沒有調用?Wifip2p發現同行不工作

之後,我已經改變了我的項目的代碼,Displaypeers方法不工作/調用。但是當我導入它完整的項目它的作品。它是如何工作的?請幫幫我 。 如果我犯了錯誤,誰能告訴我如何調用該方法? oncreate函數本身的移位器(最終的WifiP2pDeviseList同位體)。 謝謝。對不起,我的英語不好。

public void searchForPeers(View view) { 

    //Discover peers, no call back method given 
    wifiManager.discoverPeers(wifichannel, null); 

} 

.... ....

public void displayPeers(final WifiP2pDeviceList peers) 
{ 
    //Dialog to show errors/status 
    final AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
    dialog.setTitle("WiFi Direct File Transfer"); 

    //Get list view 
    ListView peerView = (ListView) findViewById(R.id.peers_listview); 

    //Make array list 
    ArrayList<String> peersStringArrayList = new ArrayList<String>(); 

    //Fill array list with strings of peer names 
    for(WifiP2pDevice wd : peers.getDeviceList()) 
    { 
     peersStringArrayList.add(wd.deviceName); 
    } 

    //Set list view as clickable 
    peerView.setClickable(true); 

    //Make adapter to connect peer data to list view 
    ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, peersStringArrayList.toArray());     

    //Show peer data in listview 
    peerView.setAdapter(arrayAdapter); 


    peerView.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View view, int arg2,long arg3) { 

      //Get string from textview 
      TextView tv = (TextView) view; 

      WifiP2pDevice device = null; 

      //Search all known peers for matching name 
      for(WifiP2pDevice wd : peers.getDeviceList()) 
      { 
       if(wd.deviceName.equals(tv.getText())) 
        device = wd;       
      } 

      if(device != null) 
      { 
       //Connect to selected peer 
       connectToPeer(device); 

      } 
      else 
      { 
       dialog.setMessage("Failed"); 
       dialog.show(); 

      }       
     }   
      // TODO Auto-generated method stub    
     }); 

} 

編輯:onCreate方法

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_client); 
    // getActionBar().setDisplayHomeAsUpEnabled(true); 

    wifiManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); 

    wifichannel = wifiManager.initialize(this, getMainLooper(), null); 
    wifiClientReceiver = new WiFiClientBroadcastReceiver(wifiManager, wifichannel, this); 

    wifiClientReceiverIntentFilter = new IntentFilter(); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION); 
    connectedAndReadyToSendFile = false; 
    filePathProvided = false; 
    fileToSend = null; 
    transferActive = false; 
    clientServiceIntent = null; 
    targetDevice = null; 
    wifiInfo = null; 

    registerReceiver(wifiClientReceiver, wifiClientReceiverIntentFilter); 

    setClientFileTransferStatus("Client is currently idle"); 

    //setTargetFileStatus("testing"); 
} 
+0

您可以發佈您onCreate()方法呢? – iheanyi

+0

@iheanyi爲我的信息添加了oncreate ... –

回答