我已創建類似於android市場的測試示例viewpager選項卡。但是所有的選項卡都顯示相同的listView項目。我需要以這樣一種方式實現,即每個選項卡在listView中都有自己的一組項目。如何使用viewpager創建具有不同列表視圖項目的選項卡
這是我的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;
}
}
片段1類:
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我在列表視圖
但TAB2正在用相同的ListView的項目,如tab11 diaplayed使用Cheese.fragment2作爲項目?
如何獲取tab2中加載的不同項目?
能否請您發佈如何實現你的'MainPagerAdapter'?我的代碼結構與您的代碼結構非常相似,但我無法看到其他片段的內容,請幫助。你可以更新你的問題,我可以upvote。 – Stallman 2014-08-11 05:40:22