Android:滑动的选项卡不显示listfragment

Android:滑动的选项卡不显示listfragment,android,tabs,Android,Tabs,我正在处理这个教程:。 问题是,如果我将一个简单的静态布局设置为选项卡的布局,如下图所示(如教程所示),则一切正常: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tab1" android:layout_width="match_parent"

我正在处理这个教程:。 问题是,如果我将一个简单的静态布局设置为选项卡的布局,如下图所示(如教程所示),则一切正常:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tab1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/body1" />

</LinearLayout>

哦,似乎您从未在getItem()方法中实际返回您的
SongsFragment
。事实上,你似乎从未使用过它

@Override
public Fragment getItem(int i) {
    Fragment fragment = new TabFragment();
    Bundle args = new Bundle();
    args.putInt(TabFragment.ARG_OBJECT, i);
    fragment.setArguments(args);
    return fragment;
}

“swype”是键盘应用程序,“swipe”是您要查找的单词。您是否先在独立活动中尝试了ListView?是的,我尝试过!现在我再次检查。。。但我记得它起作用了:谢谢你的刷卡;你是对的!我将编辑我的代码,并告诉我是否有其他问题,但我想你已经解决了它!是的,问题是:)在很多类中几乎没有变化就解决了:如果其他人需要解决方案:您只需编辑CollectionPagerAdapter,使其在初始化后在内存中保留一个片段,然后每次都显示它,而不是重新初始化:)
    import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

public class SongsFragment extends ListFragment {

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

public class SongsFragment extends ListFragment {

    List<String[]> songs;

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }

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


    }

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

        songs = SongsDataSource.getInstance().getAllSongs();

        List<String[]> values = new ArrayList<String[]>();

        if (songs.size() == 0) {
            values.add(new String[] { "No files found", "Try to update your database", "" });
        }

        for (String[] song : songs) {
            values.add(new String[] { song[1], song[2], song[0] });
        }

        SongsListAdapter adapter = new SongsListAdapter(getActivity().getApplicationContext(),
                R.layout.songs, R.id.songsFragment_titleTextView,R.id.songsFragment_artistTextView, values);

        setListAdapter(adapter);

    }

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



    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
    }

}
import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;



public class SongsListAdapter extends ArrayAdapter<List<String[]>> {
    private final Context context;
    private final List<String[]> values;
    private final Integer listViewId;
    private final Integer titleTextViewId;
    private final Integer artistTextViewId;

    public SongsListAdapter(Context context, Integer listViewId, Integer titleTextViewId, 
            Integer artistTextViewId, List values) {
        super(context, listViewId, values);
        this.context = context;
        this.listViewId = listViewId;
        this.values = values;
        this.titleTextViewId = titleTextViewId;
        this.artistTextViewId = artistTextViewId;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(listViewId, parent, false);
        TextView titleView = (TextView) rowView.findViewById(titleTextViewId);
        TextView artistView = (TextView) rowView.findViewById(artistTextViewId);
        titleView.setText(values.get(position)[0]);
        artistView.setText(values.get(position)[1]);
        return rowView;
    }
}
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;


public class CollectionPagerAdapter extends FragmentPagerAdapter {

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

    @Override
    public Fragment getItem(int i) {
        Fragment fragment = new TabFragment();
        Bundle args = new Bundle();
        args.putInt(TabFragment.ARG_OBJECT, i);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public int getCount() {
        return MyApplication.getInstance().infoFragments.length;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        String tabLabel = null;

        if(0 <= position && position < MyApplication.getInstance().infoFragments.length) {
            tabLabel = MyApplication.getInstance().infoFragments[position].getLabel();
        }

        return tabLabel;
    }
}
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * A fragment that launches other parts of the demo application.
 */
public class TabFragment extends Fragment {

    public static final String ARG_OBJECT = "object";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        Bundle args = getArguments();
        int position = args.getInt(ARG_OBJECT);

        int tabLayout = 0;

        if(0 <= position && position < MyApplication.getInstance().infoFragments.length) {
            tabLayout = MyApplication.getInstance().infoFragments[position].getLayout();
        }

        View rootView = inflater.inflate(tabLayout, container, false);

        return rootView;
    }
}
 import android.app.Application;

    public class MyApplication extends Application {

        //SIGLETON DECLARATION

        private static MyApplication mInstance = null;

        public static MyApplication getInstance() { 
            if (mInstance == null) {
              mInstance = new MyApplication();
            }
            return mInstance;
        }

        public static InfoFragment[] infoFragments = new InfoFragment[] {
                new InfoFragment("Songs", R.layout.songs)
        };

        public static class InfoFragment {
            private String label;
            private int layout;

            public InfoFragment(String label, int layout) {
                this.label = label;
                this.layout = layout;
            }

            public String getLabel() {
                return label;
            }

            public int getLayout() {
                return layout;
            }
        }

    }
@Override
public Fragment getItem(int i) {
    Fragment fragment = new TabFragment();
    Bundle args = new Bundle();
    args.putInt(TabFragment.ARG_OBJECT, i);
    fragment.setArguments(args);
    return fragment;
}