Java Android.R.id.list ListView片段异常
我有一个android应用程序,当我添加Java Android.R.id.list ListView片段异常,java,android,listview,Java,Android,Listview,我有一个android应用程序,当我添加ListFragment时,它会不断崩溃。我不断地得到和错误,并已阅读了相同的错误消息的其他网站。我还没有找到任何对我有用的东西。例外情况是: Unable to start Activity Component {com.alarm/com.alarm.activity.AlarmListActivity} java.lang.RuntimeException: Content has view with android.R.id.list that i
ListFragment
时,它会不断崩溃。我不断地得到和错误,并已阅读了相同的错误消息的其他网站。我还没有找到任何对我有用的东西。例外情况是:
Unable to start Activity Component {com.alarm/com.alarm.activity.AlarmListActivity} java.lang.RuntimeException: Content has view with android.R.id.list that is not a ListView class.
但这很奇怪,因为我没有id为“list”的ListView。下面是我的片段是如何定义的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/alarm_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
活动:
package com.alarm.activity;
import android.app.Activity;
import android.app.FragmentManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.alarm.R;
import com.alarm.fragments.AlarmListFragment;
public class AlarmListActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager fm = getFragmentManager();
if (fm.findFragmentById(android.R.id.content) == null) {
fm.beginTransaction().add(android.R.id.content, new AlarmListFragment()).commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.alarm_list_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add_alarm:
Intent addAlarm = new Intent(this, AlarmCreateActivity.class);
startActivity(addAlarm);
return true;
case R.id.settings:
Intent settings = new Intent(this, SettingsActivity.class);
startActivity(settings);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
如果您能提供任何帮助或解释为什么会发生这种情况,我们将不胜感激 您必须使用
android:id=“@id/android:list”
作为您的ListView
android前缀必须在at符号之后
package com.alarm.activity;
import android.app.Activity;
import android.app.FragmentManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.alarm.R;
import com.alarm.fragments.AlarmListFragment;
public class AlarmListActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager fm = getFragmentManager();
if (fm.findFragmentById(android.R.id.content) == null) {
fm.beginTransaction().add(android.R.id.content, new AlarmListFragment()).commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.alarm_list_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add_alarm:
Intent addAlarm = new Intent(this, AlarmCreateActivity.class);
startActivity(addAlarm);
return true;
case R.id.settings:
Intent settings = new Intent(this, SettingsActivity.class);
startActivity(settings);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}