Android使用标签创建活动,并在每个片段中动态添加视图

时间:2013-08-21 13:05:46

标签: android android-fragments android-tabs

我试图让一个活动有可跳转的标签,每个标签都有一个不同的片段(我不知道我将要有多少片段,所以假设它们至少为5)。 所以我遇到问题使用标签创建父活动(如果我说的正确)然后片段本身有一些动态添加的视图(文本视图和一个图像视图)从不同的异步任务中获取它们的东西,在片段时执行显示。 不知道我是否正确解释了,但这是我的代码,我会请你加入所需的东西。

所以这里是必须托管标签和片段的parrent活动:

public class SecondActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }
}

这里是其中一个片段(其他片段相似):

public class Fragment1 extends Fragment {

    LinearLayout layout;
    ImageView iv;
    String anotherURL;
    ArrayList<InfoStuff> ci;

    public Fragment1() {
        // Empty constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment1, container, false);
        layout = (LinearLayout) rootView.findViewById(R.id.layout);
        iv = (ImageView) rootView.findViewById(R.id.ivPortrait);
        Bundle b = this.getArguments();
        ci = b.getParcelableArrayList("infoStuff");
        regionUrl = b.getString("someURL");
        createViews();
        return rootView;
    }

    public void createViews() {

        TextView tv;

        tv = new TextView(v.getContext());
        tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        tv.setText("le text");
        layout.addView(tv);

        tv = new TextView(v.getContext());
        tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        tv.setText("some text");
        layout.addView(tv);


        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(v.getApplicationContext()).build();
        ImageLoader.getInstance().init(config);
        String imgUrl = "someURL";
        ImageLoader.getInstance().displayImage(imgUrl, iv);
    }
}

我也遇到了使ImageView工作的麻烦,因为它来自一个额外的库(忘了名字,继承人导入虽然导入com.nostra13.universalimageloader.core.ImageLoader;)

编辑:抱歉,忘记提示标签必须是可刷卡的

2 个答案:

答案 0 :(得分:0)

文章Creating Navigation tabs using TabHost and Fragments in Android可能会对您有所帮助。

  

在本文中,我们将开发一个包含导航标签的Android应用程序。我们可以通过多种方式向应用程序添加导航标签。

     

从Android 3.0开始,创建导航标签的标准方法是使用操作栏。 [...]

     

对于Android 2.x及以上版本,我们可以使用Action bar Sherlock库来创建导航库。 [...]

     

在此应用程序中,我们使用TabHost和Fragments创建导航选项卡。 [...]

     

此应用程序是在Eclipse 3.7.2中使用ADT插件(20.0.2)和Android SDK(R20.0.1)开发的。

答案 1 :(得分:0)

我刚刚开始做一些非常类似于你想做的事情。我跟着this tutorial on Android Hive,这对于获取标签,滑动和碎片非常有帮助。 (此示例中的片段只是具有不同颜色的文本视图,但您可以轻松找出在您自己的视图中添加的位置)。

希望这有帮助 - 它为我做了!