如何从不同的android类“运行方法”

时间:2013-04-05 18:49:37

标签: java android

首先,就像这么多,我刚刚开始尝试学习Java和Android开发。我正在学习一些教程等等。无论如何,我试图做一些可能非常简单的事情,但我不确定要完成的语法,因此,不确定如何在互联网上搜索任何成功。

我的问题:我有一个“Main.java”文件和第二个“Tabs.java”。 main具有您对默认存根的所有期望:

package com.example.main;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class Main extends Activity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

我的Tabs.java看起来像:

package com.example.main;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class Tabs extends Activity{

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

        //Initiate tabs
        TabHost th = (TabHost)findViewById(R.id.tabhost);
        th.setup();

        //Create tab1
        TabSpec specs = th.newTabSpec("tag1");
        specs.setContent(R.id.tab1);
        specs.setIndicator("Reservation List");
        th.addTab(specs);
    }
}

我希望在程序启动时启动此选项卡类,以设置选项卡式视图。我可以将它扔进主类,但我想我会尝试通过将它们分开来保持代码更整洁。我怎样才能完成这个?

1 个答案:

答案 0 :(得分:2)

“回答”是一个坏主意。但是,我认为值得解释为什么这是一个坏主意。听起来你混淆了两个基本概念 - 一个class的概念,它存在于面向对象的语言中,如Java,以及一个android Activity

Activity非常像一个单独的程序。它包含执行特定任务所需的所有(或至少大部分)材料。应用程序可以组合多种活动来处理多种任务 - 例如,在消息传递应用程序中,您可能有一个活动显示用户联系人,另一个活动允许您向他们发送消息。这些活动是分开的。您可以使用Intents在@codeMagic之间传输数据,但大多数情况下每个Activity都是自包含的。

class是面向对象编程的概念,用作创建该类型对象的蓝图。 Oracle Java documentation提供了这个概念的一个很好的例子。类是有用的,因为它们允许您设置一种可在以后在应用程序中使用的对象的属性,从而大大提高了灵活性。

上面引用的聊天应用程序示例是了解使用类的位置/方式的好方法。在该情况下,当您必须显示某人的联系人列表时,您将无法提前知道将包含在该列表中的每个用户,您将提供哪些信息或将有多少个人。要处理这种情况,您将创建一个名为class的用户。用户类将包含您要显示的有关特定人员的所有详细信息。也许这会包括他们的姓名,地址,电话号码等。您可以设置一般适用于所有用户的属性列表,然后创建用户类的单个实例,并为要显示的每个人填写提供的数据。

简而言之 - 您的活动与class的工作方式不同(但请参阅Fragments,其行为类似)。对于您要执行的操作,请在主活动中创建选项卡。