我的logcat中出现错误,说"你的内容必须有一个ListView,其id属性是'android.R.id.list'".我的代码编译并运行但在我开始listview活动时强制关闭.我检查了很多类似的问题,这似乎是一个常见的问题,但我仍然无法修复我的代码.
宣言:
private ListView lv;
Context mContext;
List mList;
String[] testcontacts;
MessageView aa = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firstlist);
testcontacts = getResources()
.getStringArray(R.array.testcontacts_array);
aa = new MessageView();
lv = getListView();/*(ListView) lv.findViewById(R.id.list); Had to comment out, it cannot find list*/
lv.setAdapter(aa);
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
}
class MessageView extends ArrayAdapter<String> …Run Code Online (Sandbox Code Playgroud) android listviewitem relativelayout android-intent android-listview
我正在尝试将我的主Activity扩展为"ListActivity"(以前扩展为:Activity)以使用onListItemClick,但是logcat,发送给我"你的内容必须有一个ListView,其id属性是'android.r.id.list "".(我正在使用SQLite填充ListView).
mi xml是:
<ListView
android:id="@+id/list" // to "@id/android:list" or other styles (but nothing works)
android:layout_width="fill_parent"
android:layout_height="fill_parent"/> // or closing with </ListView>
Run Code Online (Sandbox Code Playgroud)
这是ListView的完整xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" /></LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的主要类来处理ListView:
public class lay_main extends ListActivity{
public ListView list;
private DBHelper myAdap;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lay_main);
collectXML();
setupDataBase();
setupAdapter();
}
private void collectXML()
{
list = (ListView)findViewById(R.id.list);
}
private void …Run Code Online (Sandbox Code Playgroud) android listview listactivity android-listview runtimeexception
我浏览了其他每个相同/类似的问题:
Android:您的内容必须具有ListView,其id属性为android.R.id.list
您的内容必须具有ListView,其id属性为'android.R.id.list'
没有任何帮助.
区别在于我的Activity没有扩展ListActivitiy(这似乎是上述情况中的问题).
我的活动扩展了FragmentActivity(我无法将其更改为Activity,因为我有依赖项).
public class MainActivity extends FragmentActivity
Run Code Online (Sandbox Code Playgroud)
... 列表显示
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector" >
</ListView>
Run Code Online (Sandbox Code Playgroud)
...片段视图
<fragment
android:id="@+id/contentFragment"
android:name="com.landa.fragment.ContentFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/include1" />
Run Code Online (Sandbox Code Playgroud)
我也尝试按照上述问题的建议更改ListView的'id'格式 - Android不同意这种表示法.
内容片段扩展了ListFragment:
public class ContentFragment extends ListFragment {
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?