繁体   English   中英

Android标签:活动还是视图?

[英]Android Tabs: Activities or Views?

我正在尝试编写一个小的Android应用程序来存储食谱。 要添加新食谱,我正在尝试使用标签。 有三个标签,

  1. 配料
  2. 脚步
  3. 媒体

我希望“成分”具有ListView,“步骤”具有ListView,“媒体”具有图像库。 我将通过选项菜单中的某些选项添加新的成分,步骤和媒体。 完成后,我想将所有内容写入SQLite数据库。

我想知道我应该为每个选项卡使用不同的活动还是仅使用不同的视图?

如果我使用其他活动,在活动之间传递信息会很难吗?

如果我使用不同的视图,这些视图是否都必须属于同一布局文件? 例如, TabWidgets上的教程执行以下操作:

<FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView 
            android:id="@+id/textview1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is a tab" />
        <TextView 
            android:id="@+id/textview2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is another tab" />
        <TextView 
            android:id="@+id/textview3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is a third tab" />
</FrameLayout>

因此,所有TextView都在同一个FrameLayout中,每个TextView仅用于一个选项卡。 我认为,如果视图更复杂,例如嵌套在其他内容中,然后又嵌套在其他内容中,这将有些混乱。 对于每个选项卡使用不同的活动,我可以为每个选项卡指定不同的布局文件。

我想知道我应该为每个选项卡使用不同的活动还是仅使用不同的视图?

不建议使用“将活动用作选项卡”内容。 您仍然可以这样做,但是如果您只是从这个项目开始,那么最好使用Views。

如果我使用其他活动,在活动之间传递信息会很难吗?

是和否,但这取决于您的专业水平-在活动之间传递信息通常涉及使用Intent(尽管还有其他方法)。 尽管它们是独立的还是选项卡式环境的一部分都是相同的,但没有任何区别,但是确实需要进行一些思考。

如果我使用不同的视图,这些视图是否都必须属于同一布局文件?

否,但是使用TabActivity入门时,您可能想尝试该教程中的方法。

可能有不同的布局(对于任何类型的Activity),并根据需要自己给它们充气,但这是一个更复杂的主题。

我不确定哪个更好,但是基于您的问题,即很难在不同活动之间传递信息是很简单的。

如果您有两个活动,即活动A和活动B,并且要将信息从A发送到B,则可以使用以下内容

Intent intent = new Intent(activityAClassName.this, activityBClassName.class);
intent.putExtra("keyName", "value");
startActivity(intent);

然后从activityB中的activityA中获取值,并将此代码转换为activityB

Bundle bundle = this.getIntent().getExtras();
string value = bundle.getString("keyName");

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM