这可能看似微不足道,但我不知道我的谷歌搜索中的终止记录是如何以及缺少什么。我已经有一个主要活动,如下所示:
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
已经在运行(它是主要的)。
提前致谢
答案 0 :(得分:2)
您不自行创建活动实例。相反,您致电startActivity()
开始活动:
startActivity(new Intent(this, AllSongsActivity.class));
答案 1 :(得分:1)
要从当前的Activity中调用一个新的Activity,您不能只是实例化该Activity的类。您必须使用intent
类似的东西:
http://www.vogella.com/articles/AndroidIntent/article.html
另外你要检查Android官方文档,特别是API指南,它对这个常见问题有很多启示:
答案 2 :(得分:1)
请查看有关Intents的文档。 Intents用于启动android中的另一个活动。
对于前,
Intent intent = new Intent(this, AllSongsActivity.class);
startActivity(intent); // This will start AllSongsActivity activity
答案 3 :(得分:1)
你必须向你想要开始的活动发送一个Intent:
Intent intent = new Intent(this, AllSongsActivity.class);
startActivity(intent);
编辑:已经回答了!
答案 4 :(得分: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;
...
}
}
}