gpt4 book ai didi

android - 在不同布局的 ViewPager Indicator 中设置数据

转载 作者:行者123 更新时间:2023-11-29 01:56:22 26 4
gpt4 key购买 nike

我的 ViewPagerIndicator 有 3 种不同的布局 - https://github.com/JakeWharton/Android-ViewPagerIndicator

我的项目是从网站加载数据并将数据相应地设置到 ViewPager 的 3 种不同布局中。

我该如何实现它?

在我的 TestFragment 中,我有

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.i("mContent", mContent);
View view = null;
if (mContent.equalsIgnoreCase("title1")) {
view = inflater.inflate(R.layout.one, container, false);

} else if (mContent.equalsIgnoreCase("title2")) {
view = inflater.inflate(R.layout.two, container, false);
} else if (mContent.equalsIgnoreCase("title3")) {
view = inflater.inflate(R.layout.three, container, false);
//Textview data = (TextView)view.findViewById(id)
}
return view;
}

我知道这是为了根据标题设置布局。我知道如何通过 findViewById 获取小部件的 ID 和设置数据。但是,数据是在代码本身中静态设置的。

对我来说,我必须从互联网上获取数据并相应地放入数据。我如何做到这一点?提前致谢。

最佳答案

我几乎知道你想要什么。这是我的答案,而且效果很好。您可以按照以下步骤操作。

1.创建三个不同的Fragment类,如LoadImageFragment1、LoadImageFragment2、LoadImageFragment3,它们都扩展了Fragment。以下是我的示例。

public class LoadImageFragment1 extends Fragment {
ListView listView;
LayoutInflater mInflater;
LoadImageAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mInflater = inflater;
View view = inflater.inflate(R.layout.loadimage_layout, null);
listView = (ListView) view.findViewById(R.id.listview);
adapter = new LoadImageAdapter();
adapter.initList();
listView.setAdapter(adapter);
return view;
}

private class LoadImageAdapter extends BaseAdapter{
ArrayList<String> list = new ArrayList<String>();

public void initList(){
for(int i = 0 ; i < 30;i ++){
list.add("" + i);
}
}

@Override
public int getCount() {

return list.size();
}

@Override
public Object getItem(int position) {

return position;
}

@Override
public long getItemId(int position) {

return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = mInflater.inflate(R.layout.loadimage_item, null);
}
return convertView;
}

}

2.然后修改您的 SampleTabsDefault 类。

    class GoogleMusicAdapter extends FragmentPagerAdapter {
public GoogleMusicAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
// return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
switch(position){
case 0:
return new LoadImageFragment1();
case 1:
return new LoadImageFragment2();
case 2:
return new LoadImageFragment3();
}

}

@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length].toUpperCase();
}

@Override
public int getCount() {
return CONTENT.length;
}
}

我只是使用 SampleTabsDefault 类作为示例。您可以在其他类中这样做。这里我只是使用一个 ListView 作为示例,你可以从 internt 加载你的图像和文本,你也可以在你的 LoadImageAdapter 的 getView() 方法中做其他事情。希望对您有所帮助。

关于android - 在不同布局的 ViewPager Indicator 中设置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14929521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com