我正在显示已连接到Android手机的所有设备的列表。我真的想继续使用片段来帮助轻松导航。我在声明Cannot resolve constructor 'ArrayAdapter(com.henryjarend.test.Connect2, int, java.util.List<java.lang.String>)'
我已经查看了android开发人员API上的构造函数,看起来它应该正常工作。
以下是代码:
public class Connect2 extends ListFragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.connect2, container, false);
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
BluetoothAdapter myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = myBluetoothAdapter.getBondedDevices();
List<String> previousDevices = new ArrayList<String>();
for(BluetoothDevice bt : pairedDevices){
previousDevices.add(bt.getName());
}
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, R.layout.connect2, previousDevices);
//setListAdapter(new ArrayAdapter<String>(this, android.R.id.list, previousDevices));
}
}
注释掉的部分是我在网上找到的另一个例子,但它有与未注释的问题相同的问题。
答案 0 :(得分:1)
问题:
ArrayAdapter<String> adapter1 =
new ArrayAdapter<String>(this, R.layout.connect2, previousDevices)
this
这里是ListFragment
,为上下文获取此片段的活动。
解决方案:
ArrayAdapter<String> adapter1 =
new ArrayAdapter<String>(getActivity(), R.layout.connect2, previousDevices)