Android使用两个类进行单一布局

时间:2016-01-01 04:56:39

标签: java android

我试图在一些不同的文件中分离我的一些java。

我有我的主要课程:

public class StartPage extends Activity {
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start_page);
    }
    ...
}

然后我还有其他课程,我想在相同的布局上运行:

public class part_settings_session extends Activity {
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start_page);
        Toast.makeText(getApplicationContext(), "This is from settings", Toast.LENGTH_SHORT).show();
    }
    ...
}

但是我无法看到Toast在任何地方或任何时间发生。有没有办法让这两个类在两个单独的文件中工作?这是为了自己组织脚本。

2 个答案:

答案 0 :(得分:1)

两个活动无法同时显示,在您的代码中,您已经定义了两个具有相同布局的活动。您的代码很好但是要看到两个活动都有效,您必须手动启动下一个活动。下面的代码将帮助您。此代码将在加载First Activity后3秒启动Next Activity。

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            startActivity(new Intent(StartPage.this, NextPage.class));
            finish();
        }
}, 3000);

答案 1 :(得分:0)

在第二个类的onCreate()中,放置Log.d("part_settings_session", "onCreate");并查看是否首先调用onCreate。 (由于它们使用相同的布局,因此可能很难看出您是否“实际”创建了此类的实例。

我的猜测是你甚至可能没有创建part_settings_session类的实例。没有记录就很难说清楚了。

这是一个很好的Activity基类,它将为你记录所有生命周期事件

https://github.com/douglascraigschmidt/CS282/blob/c5cf5c4808ea082988ab87c00eeade4837eac967/assignments/assignment1/src/edu/vandy/common/LifecycleLoggingActivity.java