Java 简单程序中的setListAdapter错误
我是android编程新手,我还有一些事情不明白。例如,我有一个程序,当你点击一个按钮时,它会试图找到附近的任何设备。问题是我不知道如何解决我在乞讨中犯下的一个错误。这就是我所拥有的 这是主要活动:Java 简单程序中的setListAdapter错误,java,android,Java,Android,我是android编程新手,我还有一些事情不明白。例如,我有一个程序,当你点击一个按钮时,它会试图找到附近的任何设备。问题是我不知道如何解决我在乞讨中犯下的一个错误。这就是我所拥有的 这是主要活动: import java.util.ArrayList; import java.util.List; import java.util.Set; import android.app.Activity; import android.bluetooth.BluetoothAdapter; impor
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void buscar(View view){
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
List<String> s = new ArrayList<String>();
for(BluetoothDevice bt : pairedDevices)
s.add(bt.getName());
setListAdapter(new ArrayAdapter<String>(this, R.id.list, s));
}
}
import java.util.ArrayList;
导入java.util.List;
导入java.util.Set;
导入android.app.Activity;
导入android.bluetooth.BluetoothAdapter;
导入android.bluetooth.bluetooth设备;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.view;
导入android.widget.ArrayAdapter;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
公共客车(视图){
BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
设置pairedDevices=mBluetoothAdapter.getBondedDevices();
列表s=新的ArrayList();
用于(蓝牙设备bt:pairedDevices)
s、 添加(bt.getName());
setListAdapter(新的ArrayAdapter(this,R.id.list,s));
}
}
这是xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
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=".MainActivity" >
<Button
android:id="@+id/botonvinculo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:clickable="true"
android:onClick="buscar"
android:text="Buscar dispositivos" />
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/botonvinculo"
android:layout_below="@+id/botonvinculo" >
</ListView>
</RelativeLayout>
问题是,除非我的主活动扩展自ListActivity,否则我无法调用setListAdapter,即使尝试这样做,它也会返回一个错误,说“您必须拥有一个属性为“android.R.id.list”的ListView”
非常感谢您的帮助。
setListAdapter
仅当您的活动从ListActivity
扩展时才起作用。请在您的案例中使用此选项
listview.setAdapter();
如果要使用setListAdapter(),请仅更改以下内容
public class MainActivity extends Activity
到
及
android:id=“@android:id/list”用于xml中的列表视图
如果使用ListActivity
,则应在xml中使用android:id=“@android:id/list”
,而不是android:id=“@+id/list”
或者,您可以在XML格式中获得ListView
的对象
ListView列表=(ListView)findViewById(R.id.list);
然后使用
list.setAdapter
您的类扩展了活动setListAdapter
是ListActivity
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView)findViewById(R.id.list);
}
然后
public void客车(视图){
BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
设置pairedDevices=mBluetoothAdapter.getBondedDevices();
列表s=新的ArrayList();
用于(蓝牙设备bt:pairedDevices)
s、 添加(bt.getName());
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple.list_item_1,s);
低压设置适配器(适配器);
}
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView)findViewById(R.id.list);
}
public void buscar(View view){
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
List<String> s = new ArrayList<String>();
for(BluetoothDevice bt : pairedDevices)
s.add(bt.getName());
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple.list_item_1,s);
lv.setAdapter(adapter);
}