标签内的链接活动

时间:2010-07-28 17:30:12

标签: android

这是我的问题: 我有一个带标签的应用程序。 在每个标签中,我有一个列表,列表到另一个列表,然后到一个带有图像,可点击文本等的屏幕。 总之,我在标签中有任务。

问题 尽管长期寻求论坛和教程,我仍然无法想象女巫是最好的做法:切换活动insde一个选项卡 或改变观点。

这是我的代码

public class App extends TabActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Resources res = getResources(); // Resource object to get Drawables
        TabHost tabHost = getTabHost();  // The activity TabHost
        TabHost.TabSpec spec;  // Reusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab

        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent().setClass(this, Activity0.class);

        // Initialize a TabSpec for each tab and add it to the TabHost
        spec = tabHost.newTabSpec("0").setIndicator("0",
                          res.getDrawable(R.drawable.ic_tab_0))
                      .setContent(intent);
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, Activity1.class);
        spec = tabHost.newTabSpec("1").setIndicator("1", 
                        res.getDrawable(R.drawable.ic_tab_1))
                      .setContent(intent);
        tabHost.addTab(spec);

然后我必须在标签0

中切换活动(Activity0 - > Activity01)
public class Activity0 extends Activity{
..
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainlist);
        ListView l1 = (ListView) findViewById(R.id.ListView01);

        l1.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
//          Toast.makeText(getBaseContext(), "You clciked "+parentTypes.get(arg2).getLibelle(), Toast.LENGTH_LONG).show();
            /*TODO database method */
            TypeEvenement parent = parentTypes.get(arg2);   
            if (parent.getChildren().size()!=0)
            {
                Intent i = new Intent(TypeParentList.this, TypeChildList.class);
                int id= new Long(parentTypes.get(arg2).getId()).intValue();
                i.putExtra("typeid", id);

                View view = lam.startActivity("TypeChildList",i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)).getDecorView(); 

                setContentView(view);

然后从Activity01返回此活动

public class Activity01 extends Activity{
        tv.setOnClickListener(new View.OnClickListener() {
              public void onClick(View view) {
                    Intent i = new Intent(TypeChildList.this, Activity0.class);
                    LocalActivityManager lam = pa.getLocalActivityManager();


                    View view2 = lam.startActivity("Activity0",i).getDecorView(); 
                    setContentView(view2);

              }
              });

go and back后我得到一个错误java.lang.IllegalStateException指定的子节点已经有父节点。您必须首先在孩子的父母身上调用removeView()。

我知道它来自我的观点,但我无法弄清楚如何解决它 那么这是在一个标签中进行多项活动的最佳做法吗?

请帮助

2 个答案:

答案 0 :(得分:0)

如果您使用ViewSwitcherViewFlipper,则可以View附加{{1}},并根据您的心愿来回切换。

答案 1 :(得分:0)

使用标签栏或常用快捷方式栏的一种方法是使用单独的类来处理OnClickListeners,它们可以背对背地调用startActivity(newIntent)和finish()。我不太喜欢默认的TabView看起来像什么,所以我倾向于制作一个图形工具栏并使用这种方法。