1

这可能看起来微不足道,但我不知道我的谷歌搜索中缺乏术语是如何产生的。我已经有一个主要活动,如下所示:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class DroidPlayerActivity extends Activity {

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.all_songs:
                Toast.makeText(DroidPlayerActivity.this, "Pressed All Songs TextView", Toast.LENGTH_SHORT).show();
                new AllSongsActivity();//nothing shows up
                break;
            case R.id.recently_added:
                Toast.makeText(DroidPlayerActivity.this, "Pressed Recently Added TextView", Toast.LENGTH_SHORT).show();
                break;
            ...
        }

    }
}

在我的onClick(View v)方法中,我检查了哪个TextView被按下并启动了一个新的实例AllSongsActivity,但是,什么都没有显示(活动不可见仍然显示我的主要活动)。这个AllSongsActivity类现在只是一个简单的空白 Activity

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

/**
 *
 * @author David
 */
public class AllSongsActivity extends Activity{

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

}

因此,为了澄清我如何使AllSongsActivity我已经运行的可见DroidPlayerActivity(它是主要的)。

提前致谢

4

5 回答 5

2

您不会自己创建活动实例。相反,您调用startActivity()以启动活动:

startActivity(new Intent(this, AllSongsActivity.class));
于 2012-08-26T20:18:52.080 回答
1

请查看有关 Intents 的文档。Intents 用于在 android 中启动另一个活动。

例如,

Intent intent = new Intent(this, AllSongsActivity.class);
startActivity(intent); // This will start AllSongsActivity activity
于 2012-08-26T20:19:25.480 回答
1

您必须向要启动的 Activity 发送 Intent,如下所示:

    Intent intent = new Intent(this, AllSongsActivity.class);
    startActivity(intent);

编辑:已经回答!

于 2012-08-26T20:19:57.230 回答
1

要从当前的 Activity 调用新的 Activity,您不能只实例化该 Activity 的类。您必须使用意图

像这样的东西:

http://www.vogella.com/articles/AndroidIntent/article.html

您还应该查看 Android 官方文档,尤其是 API 指南,它为此类常见问题提供了大量信息:

http://developer.android.com/guide/components/index.html

于 2012-08-26T20:18:51.407 回答
0

这是你应该做的:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class DroidPlayerActivity extends Activity {

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.all_songs:
                Toast.makeText(DroidPlayerActivity.this, "Pressed All Songs TextView", Toast.LENGTH_SHORT).show();
                // ---- show next activity ----
                Intent intent = new Intent(DroidPlayerActivity.this, AllSongsActivity.class);
                startActivity(intent);
                break;
            case R.id.recently_added:
                Toast.makeText(DroidPlayerActivity.this, "Pressed Recently Added TextView", Toast.LENGTH_SHORT).show();
                break;
            ...
        }

    }
}
于 2012-08-26T20:23:55.150 回答