当选定的选项卡,并给出错误Listfragment崩溃 [英] Listfragment crashes when tab selected and gives errors

查看:158
本文介绍了当选定的选项卡,并给出错误Listfragment崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我运行我的应用程序都运行完美,直到我选择第三个选项卡是由我提出的listfragment,使其显示与数据和图像列表视图,一旦选择了应用程序只是给正常的消息,不幸的是,应用程序停止工作, logcat的发送大量的红色错误。

 一月3日至六日:44:23.200:D / dalvikvm(879):GC_FOR_ALLOC释放99K,6%免费3113K / 3280K,暂停57ms,总59ms
一月3日至6日:44:23.410:D / dalvikvm(879):GC_FOR_ALLOC释放20K,5%的游离3143K / 3280K,暂停20毫秒,总21ms
一月3日至6日:44:23.410:I / dalvikvm堆(879):成长堆(frag的情况下),以3.811MB为709972字节分配
一月3日至6日:44:23.450:D / dalvikvm(879):GC_FOR_ALLOC释放< 1K,4%免​​费3836K / 3976K,暂停为33ms,共为33ms
一月3日至6日:44:23.530:D /(879):HostConnection ::得到()新主机连接建立0xb7a51a38,TID 879
一月3日至6日:44:23.690:W / EGL_emulation(879):eglSurfaceAttrib没有实现
一月3日至6日:44:23.700:D / OpenGLRenderer(879):启用调试模式0
一月3日至6日:44:35.760:D / AndroidRuntime(879):关闭VM
一月3日至6日:44:35.760:W / dalvikvm(879):主题ID = 1:螺纹未捕获的异常(组= 0xb4aa8ba8)退出
一月3日至6日:44:35.810:E / AndroidRuntime(879):致命异常:主要
一月3日至6日:44:35.810:E / AndroidRuntime(879):工艺:com.TIPA.uips,PID:879
一月3日至6日:44:35.810:E / AndroidRuntime(879):了java.lang.RuntimeException:您的内容必须有一个ListView的id属性是'android.R.id.list
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.ListFragment.ensureList(ListFragment.java:344)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:941)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:550)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:509)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:490)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在com.TIPA.uips.MainActivity.onTabSelected(MainActivity.java:71)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:577)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在com.android.internal.app.ActionBarImpl $ TabImpl.select(ActionBarImpl.java:1105)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:547)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.view.View.performClick(View.java:4438)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.view.View $ PerformClick.run(View.java:18422)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.os.Handler.handleCallback(Handler.java:733)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.os.Handler.dispatchMessage(Handler.java:95)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.os.Looper.loop(Looper.java:136)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在android.app.ActivityThread.main(ActivityThread.java:5017)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在java.lang.reflect.Method.invokeNative(本机方法)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在java.lang.reflect.Method.invoke(Method.java:515)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
一月3日至6日:44:35.810:E / AndroidRuntime(879):在dalvik.system.NativeStart.main(本机方法)
一月3日至6日:44:39.230:I /流程(879):发送信号。 PID:879 SIG:9

这是我在这个类改变的主要事情是用它来为延伸片段延伸ListFragment 我相信这一情况虽然不知道怎么办?

错误

 包com.TIPA.uips;进口com.TIPA.uips.R;
进口android.os.Bundle;
进口android.support.v4.app.ListFragment;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.content.Context;
进口android.widget.ArrayAdapter;
进口android.widget.ImageView;
进口android.widget.ListView;
进口android.widget.TextView;
进口android.widget.Toast;公共类FriendsList扩展ListFragment {     公共类MyListAdapter扩展ArrayAdapter<串GT; {      上下文myContext;      公共MyListAdapter(上下文的背景下,INT textViewResourceId,
        的String []对象){
       超(背景下,textViewResourceId,对象);
       myContext =背景;
      }      @覆盖
      公共查看getView(INT位置,查看convertView,父母的ViewGroup){
       //返回super.getView(位置,convertView,父母);       LayoutInflater气筒=
         (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       查看排= inflater.inflate(R.layout.row,父母,假);
       TextView的标签=(TextView中)row.findViewById(R.id.carrottop);
       label.setText(月[位置]);
       ImageView的图标=(ImageView的)row.findViewById(R.id.dp);       //自定义您的图标在这里
       icon.setImageResource(R.drawable.dp);       返回行;
      }     }     的String []月= {
       ^铁匠铺
       ^ Kreso
       ^陈
       ^戴维
     };     @覆盖
     公共无效的onCreate(捆绑savedInstanceState){
      super.onCreate(savedInstanceState);      / *
      ListAdapter myListAdapter =新ArrayAdapter<串GT;(
        getActivity(),
        android.R.layout.simple_list_item_1,
        月);
      setListAdapter(myListAdapter);
      * /
      MyListAdapter myListAdapter =
        新MyListAdapter(getActivity(),R.layout.row,月);
      setListAdapter(myListAdapter);
     }     @覆盖
     公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
       捆绑savedInstanceState){
      返回inflater.inflate(R.layout.friends_list,集装箱,FALSE);
     }     @覆盖
     公共无效onListItemClick(ListView中升,视图V,INT位置,长的id){
      Toast.makeText(
        getActivity(),
        getListView()。getItemAtPosition(位置)的ToString()
        Toast.LENGTH_LONG).show();
     }    }

这是这里的适配器以允许片段来回报每类的价值观认为这是不允许的。

 包com.TIPA.uips;进口com.TIPA.uips.NewsFeed;
进口com.TIPA.uips.Chat;
进口com.TIPA.uips.FriendsList;
进口android.support.v4.app.Fragment;
进口android.support.v4.app.FragmentManager;
进口android.support.v4.app.FragmentPagerAdapter;公共类TabsPagerAdapter扩展FragmentPagerAdapter {    公共TabsPagerAdapter(FragmentManager FM){
        超(FM);
    }    @覆盖
    公共片段的getItem(INT指数){        开关(指数){
        情况下0:
            //顶级片段活动
            返回新的新闻源();
        情况1:
            //游戏片段活动
            返回新聊天();
        案例2:
            //电影片段活动
            返回新FriendsList();
        }        返回null;
    }    @覆盖
    公众诠释的getCount(){
        //获取项目计数 - 等于标签数
        返回3;
    }}

干杯

更新:

在与ID /列表XML实现列表视图时,新的错误发生的历史。

 二月3日至6日:47:59.780:D / dalvikvm(858):不晚启用CheckJNI(已上)
2月3日至6日:48:02.290:D / dalvikvm(858):GC_FOR_ALLOC释放95K,6%免费3117K / 3284K,暂停52ms,总54ms
2月3日至6日:48:02.510:D / dalvikvm(858):GC_FOR_ALLOC释放19K,5%的游离3143K / 3284K,暂停31毫秒,32毫秒总
2月3日至6日:48:02.510:I / dalvikvm堆(858):成长堆(frag的情况下),以3.815MB为709972字节分配
2月3日至6日:48:02.550:D / dalvikvm(858):GC_FOR_ALLOC释放< 1K,4%免​​费3836K / 3980K,暂停29ms,总29ms
2月3日至6日:48:02.640:D /(858):HostConnection ::得到()新主机连接建立0xb74f2a38,TID 858
2月3日至6日:48:02.750:W / EGL_emulation(858):eglSurfaceAttrib没有实现
2月3日至6日:48:02.760:D / OpenGLRenderer(858):启用调试模式0
2月3日至6日:48:07.920:D / AndroidRuntime(858):关闭VM
2月3日至6日:48:07.920:W / dalvikvm(858):主题ID = 1:螺纹未捕获的异常(组= 0xb4a74ba8)退出
2月3日至6日:48:07.940:E / AndroidRuntime(858):致命异常:主要
2月3日至6日:48:07.940:E / AndroidRuntime(858):工艺:com.TIPA.uips,PID:858
2月3日至6日:48:07.940:E / AndroidRuntime(858):了java.lang.RuntimeException:您的内容必须有一个ListView的id属性是'android.R.id.list
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.ListFragment.ensureList(ListFragment.java:344)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:941)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:550)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:509)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:490)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在com.TIPA.uips.MainActivity.onTabSelected(MainActivity.java:71)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:577)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在com.android.internal.app.ActionBarImpl $ TabImpl.select(ActionBarImpl.java:1105)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:547)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.view.View.performClick(View.java:4438)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.view.View $ PerformClick.run(View.java:18422)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.os.Handler.handleCallback(Handler.java:733)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.os.Handler.dispatchMessage(Handler.java:95)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.os.Looper.loop(Looper.java:136)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在android.app.ActivityThread.main(ActivityThread.java:5017)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在java.lang.reflect.Method.invokeNative(本机方法)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在java.lang.reflect.Method.invoke(Method.java:515)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
2月3日至6日:48:07.940:E / AndroidRuntime(858):在dalvik.system.NativeStart.main(本机方法)
2月3日至6日:48:09.880:I /流程(858):发送信号。 PID:858 SIG:9

Friends_list.xml

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>
    < ListView控件
        机器人:ID =@ + ID /列表
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT>
    < /&的ListView GT;< / LinearLayout中>


解决方案

您需要有如下ID列表视图中的 friends_list.xml

 < ListView的机器人:ID =@机器人:ID /列表

无论适用于 ListActivity 适用于 ListFragment

。更多信息@

引用文档


  

ListActivity具有由一个单一的默认布局,
  全屏列表在屏幕的中心。但是,如果你的愿望,
  你可以通过设置自己的视图布局定制屏幕布局
  用的setContentView()中的onCreate()。要做到这一点,你自己的视图必须
  包含id为一个ListView对象@android:ID /列表(或列表中,如果
  它在code)


所以,如果你膨胀的 ListFragment 的布局,你需要有一个的ListView id为 @android:ID /列表中的片段布局

编辑:

通知机器人:ID =@ + ID /列表 VS 机器人:ID =@机器人:ID /列表。我建议机器人:ID =@机器人:ID /列表

When i run my app everything runs perfectly until i select the third tab that consist the listfragment i made so it displays a listview with data and image, once it is selected the app just gives the normal message unfortunately the app stopped working and logcat sends a lot of red errors.

03-06 01:44:23.200: D/dalvikvm(879): GC_FOR_ALLOC freed 99K, 6% free 3113K/3280K, paused 57ms, total 59ms
03-06 01:44:23.410: D/dalvikvm(879): GC_FOR_ALLOC freed 20K, 5% free 3143K/3280K, paused 20ms, total 21ms
03-06 01:44:23.410: I/dalvikvm-heap(879): Grow heap (frag case) to 3.811MB for 709972-byte allocation
03-06 01:44:23.450: D/dalvikvm(879): GC_FOR_ALLOC freed <1K, 4% free 3836K/3976K, paused 33ms, total 33ms
03-06 01:44:23.530: D/(879): HostConnection::get() New Host Connection established 0xb7a51a38, tid 879
03-06 01:44:23.690: W/EGL_emulation(879): eglSurfaceAttrib not implemented
03-06 01:44:23.700: D/OpenGLRenderer(879): Enabling debug mode 0
03-06 01:44:35.760: D/AndroidRuntime(879): Shutting down VM
03-06 01:44:35.760: W/dalvikvm(879): threadid=1: thread exiting with uncaught exception (group=0xb4aa8ba8)
03-06 01:44:35.810: E/AndroidRuntime(879): FATAL EXCEPTION: main
03-06 01:44:35.810: E/AndroidRuntime(879): Process: com.TIPA.uips, PID: 879
03-06 01:44:35.810: E/AndroidRuntime(879): java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.ListFragment.ensureList(ListFragment.java:344)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:941)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:550)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:509)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:490)
03-06 01:44:35.810: E/AndroidRuntime(879):  at com.TIPA.uips.MainActivity.onTabSelected(MainActivity.java:71)
03-06 01:44:35.810: E/AndroidRuntime(879):  at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:577)
03-06 01:44:35.810: E/AndroidRuntime(879):  at com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:1105)
03-06 01:44:35.810: E/AndroidRuntime(879):  at com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:547)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.view.View.performClick(View.java:4438)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.view.View$PerformClick.run(View.java:18422)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.os.Handler.handleCallback(Handler.java:733)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.os.Handler.dispatchMessage(Handler.java:95)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.os.Looper.loop(Looper.java:136)
03-06 01:44:35.810: E/AndroidRuntime(879):  at android.app.ActivityThread.main(ActivityThread.java:5017)
03-06 01:44:35.810: E/AndroidRuntime(879):  at java.lang.reflect.Method.invokeNative(Native Method)
03-06 01:44:35.810: E/AndroidRuntime(879):  at java.lang.reflect.Method.invoke(Method.java:515)
03-06 01:44:35.810: E/AndroidRuntime(879):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-06 01:44:35.810: E/AndroidRuntime(879):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-06 01:44:35.810: E/AndroidRuntime(879):  at dalvik.system.NativeStart.main(Native Method)
03-06 01:44:39.230: I/Process(879): Sending signal. PID: 879 SIG: 9

The main thing that i changed in this class was it use to be extends Fragment to extends ListFragment i believe this is creating the error although not sure how?

package com.TIPA.uips;

import com.TIPA.uips.R;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.content.Context;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class FriendsList extends ListFragment {

     public class MyListAdapter extends ArrayAdapter<String> {

      Context myContext;

      public MyListAdapter(Context context, int textViewResourceId,
        String[] objects) {
       super(context, textViewResourceId, objects);
       myContext = context;
      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
       //return super.getView(position, convertView, parent);

       LayoutInflater inflater = 
         (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       View row=inflater.inflate(R.layout.row, parent, false);
       TextView label=(TextView)row.findViewById(R.id.carrottop);
       label.setText(month[position]);
       ImageView icon=(ImageView)row.findViewById(R.id.dp);

       //Customize your icon here
       icon.setImageResource(R.drawable.dp);

       return row;
      }

     }

     String[] month ={
       "^Smithy", 
       "^Kreso", 
       "^Chen", 
       "^Dave"
     };

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

      /*
      ListAdapter myListAdapter = new ArrayAdapter<String>(
        getActivity(),
        android.R.layout.simple_list_item_1,
        month);
      setListAdapter(myListAdapter);
      */
      MyListAdapter myListAdapter = 
        new MyListAdapter(getActivity(), R.layout.row, month);
      setListAdapter(myListAdapter);
     }

     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
       Bundle savedInstanceState) {
      return inflater.inflate(R.layout.friends_list, container, false);
     }

     @Override
     public void onListItemClick(ListView l, View v, int position, long id) {
      Toast.makeText(
        getActivity(), 
        getListView().getItemAtPosition(position).toString(), 
        Toast.LENGTH_LONG).show();
     }

    }

This here is the adapter to allow the fragments to return the values of each class believing it is not allowing it.

package com.TIPA.uips;

import com.TIPA.uips.NewsFeed;
import com.TIPA.uips.Chat;
import com.TIPA.uips.FriendsList;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class TabsPagerAdapter extends FragmentPagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Top Rated fragment activity
            return new NewsFeed();
        case 1:
            // Games fragment activity
            return new Chat();
        case 2:
            // Movies fragment activity
            return new FriendsList();
        }

        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 3;
    }

}

Cheers

UPDATE:

New error occuring when implemented listview in xml with id/list.

03-06 02:47:59.780: D/dalvikvm(858): Not late-enabling CheckJNI (already on)
03-06 02:48:02.290: D/dalvikvm(858): GC_FOR_ALLOC freed 95K, 6% free 3117K/3284K, paused 52ms, total 54ms
03-06 02:48:02.510: D/dalvikvm(858): GC_FOR_ALLOC freed 19K, 5% free 3143K/3284K, paused 31ms, total 32ms
03-06 02:48:02.510: I/dalvikvm-heap(858): Grow heap (frag case) to 3.815MB for 709972-byte allocation
03-06 02:48:02.550: D/dalvikvm(858): GC_FOR_ALLOC freed <1K, 4% free 3836K/3980K, paused 29ms, total 29ms
03-06 02:48:02.640: D/(858): HostConnection::get() New Host Connection established 0xb74f2a38, tid 858
03-06 02:48:02.750: W/EGL_emulation(858): eglSurfaceAttrib not implemented
03-06 02:48:02.760: D/OpenGLRenderer(858): Enabling debug mode 0
03-06 02:48:07.920: D/AndroidRuntime(858): Shutting down VM
03-06 02:48:07.920: W/dalvikvm(858): threadid=1: thread exiting with uncaught exception (group=0xb4a74ba8)
03-06 02:48:07.940: E/AndroidRuntime(858): FATAL EXCEPTION: main
03-06 02:48:07.940: E/AndroidRuntime(858): Process: com.TIPA.uips, PID: 858
03-06 02:48:07.940: E/AndroidRuntime(858): java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.ListFragment.ensureList(ListFragment.java:344)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:941)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:550)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:509)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:490)
03-06 02:48:07.940: E/AndroidRuntime(858):  at com.TIPA.uips.MainActivity.onTabSelected(MainActivity.java:71)
03-06 02:48:07.940: E/AndroidRuntime(858):  at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:577)
03-06 02:48:07.940: E/AndroidRuntime(858):  at com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:1105)
03-06 02:48:07.940: E/AndroidRuntime(858):  at com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:547)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.view.View.performClick(View.java:4438)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.view.View$PerformClick.run(View.java:18422)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.os.Handler.handleCallback(Handler.java:733)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.os.Handler.dispatchMessage(Handler.java:95)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.os.Looper.loop(Looper.java:136)
03-06 02:48:07.940: E/AndroidRuntime(858):  at android.app.ActivityThread.main(ActivityThread.java:5017)
03-06 02:48:07.940: E/AndroidRuntime(858):  at java.lang.reflect.Method.invokeNative(Native Method)
03-06 02:48:07.940: E/AndroidRuntime(858):  at java.lang.reflect.Method.invoke(Method.java:515)
03-06 02:48:07.940: E/AndroidRuntime(858):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-06 02:48:07.940: E/AndroidRuntime(858):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-06 02:48:07.940: E/AndroidRuntime(858):  at dalvik.system.NativeStart.main(Native Method)
03-06 02:48:09.880: I/Process(858): Sending signal. PID: 858 SIG: 9

Friends_list.xml

<?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/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

解决方案

You need to have a listview with id as below in friends_list.xml

<ListView android:id="@android:id/list"

Whatever applies to ListActivity applies to ListFragment. More info @

Quoting docs

ListActivity has a default layout that consists of a single, full-screen list in the center of the screen. However, if you desire, you can customize the screen layout by setting your own view layout with setContentView() in onCreate(). To do this, your own view MUST contain a ListView object with the id "@android:id/list" (or list if it's in code)

So if you inflate a layout in ListFragment you need to have a ListView with the id @android:id/list in the fragments layout.

Edit:

Notice android:id="@+id/list" vs android:id="@android:id/list". I suggested android:id="@android:id/list"

这篇关于当选定的选项卡,并给出错误Listfragment崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆