繁体   English   中英

Android android.R.id.list ListView Fragment异常

[英]Android android.R.id.list ListView Fragment Exception

我有一个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 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.fragments;

import android.app.ListFragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.alarm.R;

public class AlarmListFragment extends ListFragment {

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.frag_alarm_list, null);
        return v;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onResume() {
        super.onResume();
        Log.e("onREUME", "resuming list activity");
    }
}

活动:

    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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM