2015-06-20 63 views
1

我已經下載了一些代碼並進行了修改。我想用一對和未配對按鈕在列表視圖中顯示所有綁定的藍牙設備。 現在工作正常。當我點擊一個按鈕時,我得到了該行的編號,但我想要在烤麪包中獲得該設備的名稱。你能幫我解決嗎?有兩個按鈕的Android listview

public class MainActivity extends Activity implements AdapterView.OnItemClickListener, View.OnClickListener { 

     private BluetoothAdapter mBtAdapter; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      ListView list = new ListView(this); 
      setContentView(list); 

      mBtAdapter = BluetoothAdapter.getDefaultAdapter(); 
      Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices(); 

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_button, R.id.text) { 

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

        View row = super.getView(position, convertView, parent); 

        View left = row.findViewById(R.id.left); 
        left.setTag(position); 
        left.setOnClickListener(MainActivity.this); 

        View right = row.findViewById(R.id.right); 
        right.setTag(position); 
        right.setOnClickListener(MainActivity.this); 

        return row; 
       } 
      }; 

      list.setAdapter(adapter); 
      list.setOnItemClickListener(this); 

      if (pairedDevices.size() > 0) { 

        for(BluetoothDevice bt : pairedDevices) 

         adapter.add(bt.getName()+ "\n" + bt.getAddress());       

       } 

       else { 

         String noDevices = getResources().getText(R.string.none_paired).toString(); 
         adapter.add(noDevices); 

       } 

     } 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      switch(v.getId()) { 
      case R.id.left: 
       int pos = (Integer) v.getTag(); 
       Toast.makeText(this, "Left Accessory "+v.getTag(), Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.right: 
       Toast.makeText(this, "Right Accessory "+v.getTag(), Toast.LENGTH_SHORT).show(); 
       break; 
      default: 
       break; 
      } 

     } 
     @Override 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
      // TODO Auto-generated method stub 
      Toast.makeText(this, "Item Click "+position, Toast.LENGTH_SHORT).show(); 

     } 

    } 
+0

嘗試'adapter.getItem(poistion)' – M4rtini

+0

你能複製到下面的代碼。我不知道我必須包括那個。 – Peter

回答

0

沒有測試,但我認爲它應該工作

更改代碼onItemClick

Toast.makeText(this, "Item Click "+ adapter.getItem(poistion), Toast.LENGTH_SHORT).show(); 
+0

它不起作用。但謝謝你的回答。親切的問候 – Peter

+0

乾杯什麼? – M4rtini