按钮点击事件我使用setContentView(R.layout.activity_main);它工作正常。
如果我尝试使用Intent和startactivity命令启动新活动,则会加载布局两次,看起来布局正确加载,然后再次加载1秒相同的布局。
在开始活动之前,它会加载一次。
show.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String selected = spinner0.getSelectedItem().toString();
if(selected.equals("Item 2"))
{
Intent intent = new Intent(second_layout.this,MainActivity.class);
setContentView(R.layout.activity_main);
startActivity(intent);
}
}
});
答案 0 :(得分:1)
我猜这一行是问题.-
setContentView(R.layout.activity_main);
setContentView
只会更改当前活动的布局,因此您将当前布局更改为activity_main
,然后打开Intent
类MainActivity
只需删除该行。
答案 1 :(得分:0)
当您开始新活动时,启动意图时不需要setContentView。
入门的意图将包含加载布局的代码。所以请删除这一行。
我希望,在你的MainActivity.class中,你已经编写了setContentView(R.layout.activity_main),这足以显示所需的布局。因此,在启动意图时删除您已包含的额外行。
答案 2 :(得分:0)
在开始第二项活动之前,您无法在第一项活动中设置第二项活动布局。它将自动设置在您的第二个活动的onCreate()
方法中。因此,您应该在setContentView(R.layout.activity_main);
MainActivity's
方法中撰写onCreate()
。只需将其从onClick侦听器中删除即可。
请写下onClick
,如下所示:
show.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String selected = spinner0.getSelectedItem().toString();
if(selected.equals("Item 2"))
{
Intent intent = new Intent(second_layout.this,MainActivity.class);
startActivity(intent);
}
}
});
在您的MainActivity
中,您必须将布局设置如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}