簡體   English   中英

如何使用ViewPager使用不同的ListView項目創建選項卡

[英]How to create tabs with different listview items using viewpager

我創建了一個類似於android market的測試樣本viewpager選項卡。 但是所有選項卡都顯示相同的listView項。 我需要以一種方式實現,即每個選項卡在listView中都有其自己的項目集。

這是我的MainActivity。

package com.example.viewpagesample;

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

import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.viewpagerindicator.TitlePageIndicator;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;

public class MainActivity extends SherlockFragmentActivity {
    private ViewPager mPager;
    private TitlePageIndicator mIndicator;
    private MainPagerAdapter mAdapter;
    private List<Fragment> mFragments;

    private static final String FRAGMENT1 = Fragment1.class.getName();
    private static final String FRAGMENT2 = Fragment1.class.getName();
    private static final String FRAGMENT3 = Fragment1.class.getName();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // add fragments
        mFragments = new ArrayList<Fragment>();
        mFragments.add(Fragment.instantiate(this, FRAGMENT1));
        mFragments.add(Fragment.instantiate(this, FRAGMENT2));
        mFragments.add(Fragment.instantiate(this, FRAGMENT3));

        // adapter
        mAdapter = new MainPagerAdapter(getSupportFragmentManager(), mFragments);

        // pager
        mPager = (ViewPager) findViewById(R.id.view_pager);
        mPager.setAdapter(mAdapter);

        // indicator
        mIndicator = (TitlePageIndicator) findViewById(R.id.title_indicator);
        mIndicator.setViewPager(mPager);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return true;
    }

}

Fragment1類:

package com.example.viewpagesample;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.actionbarsherlock.app.SherlockFragment;

public class Fragment1 extends SherlockFragment {
    private ListView mList;

    @Override
    public View onCreateView(LayoutInflater inf, ViewGroup grp, Bundle icicle) {
        View v = inf.inflate(R.layout.f_fragment1, grp, false);
        mList = (ListView) v.findViewById(R.id.listView1);
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getActivity(), android.R.layout.simple_list_item_1, Cheese.STRINGS);
        mList.setAdapter(adapter);
    }

}

Cheese.STRINGS只是一個字符串數組。

Fragment2類:

package com.example.viewpagesample;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.actionbarsherlock.app.SherlockFragment;

public class Fragment2 extends SherlockFragment {
    private ListView mList;

    @Override
    public View onCreateView(LayoutInflater inf, ViewGroup grp, Bundle icicle) {
        View v = inf.inflate(R.layout.f_fragment2, grp, false);
        mList = (ListView) v.findViewById(R.id.listView2);
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getActivity(), android.R.layout.simple_list_item_1, Cheese.fragment2);
        mList.setAdapter(adapter);
    }
}

在fragment2中,我將Cheese.fragment2用作listView中的項目

但是,tab2正在使用與tab11相同的listView項顯示嗎?

如何在tab2中加載不同的項目?

private static final String FRAGMENT2 = Fragment1.class.getName();

應該

private static final String FRAGMENT2 = Fragment2.class.getName();

我猜...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM