此处我无法打开上一个活动,即按下my_layout1
。
这是我的代码:
public class Main extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout1);
Button button= (Button) findViewById(R.id.buttonId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.my_Layout2);
}
});
}
@Override
public void onBackPressed() {
finish();
}
}
请向我提供有关如何从当前布局打开上一个活动布局的建议。
答案 0 :(得分:0)
当您按下时,您正在完成当前所有布局的活动。在背面按下时,您应该创建新意图并开始此活动。或
setContentView(R.layout.my_layout1);
答案 1 :(得分:0)
此处您只有1个活动,而不是2.在onClick中再次调用setContentView不会创建新活动或向backstack添加任何内容。因此,当您单击后退或调用finish()时,活动就会结束。
如果要动态膨胀活动中的各个层,请查看使用碎片(您可以将碎片添加到后堆栈以获得按下时所需的结果)。但是,更简单的选择是导航到onClick中的另一个活动类(通过意图),在其中膨胀my_Layout2。
因此,创建另一个活动类(例如Main2),类似于你在其中膨胀my_Layout2的活动类(不要忘记在清单中注册Main2)。然后从主点上的onClick:
Intent intent = new Intent(Main.this, Main2.class);
startActivity(intent);
答案 2 :(得分:0)
在onBackPressed
而不是完成活动后,将您的布局更改为my_layout1
。
声明全局变量int count=0;
在onClick
添加此行count=0;
像这样更改onBackPressed
:
@Override
public void onBackPressed() {
if(count==0){
++count;
setContentView(R.layout.my_layout1);
}
else
finish();
}
答案 3 :(得分:0)
如果您想返回上一个活动集flagLayoutControl
为true
,然后在下面写下代码
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// pass to if back is pressed
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if(flagLayoutControl)
{
Intent myIntent = new Intent(currentActivity.this, <<WhatYouWant>>.class);
startActivityForResult(myIntent, 0);
finish();
}
else
{
Intent myIntent = new Intent(currentActivity.this, currentActivity.class);
startActivityForResult(myIntent, 0);
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 4 :(得分:0)
创建一个按钮,试试这个:
@覆盖
public void onClick(View arg0) {
onBackPressed();
}
答案 5 :(得分:0)
@Override
public void onBackPressed()
{
super.onBackPressed();
startActivity(new Intent(my_Layout2.this, my_layout1 .class));
my_Layout2.this.finish();
}
答案 6 :(得分:0)
而不是使用此
@Override
public void onClick(View v) {
setContentView(R.layout.my_Layout2);
}
使用此
@Override
public void onClick(View v) {
this.finish();
}
这会关闭您当前的布局并显示最顶层的布局
答案 7 :(得分:-1)
请使用以下代码
public boolean onKeyDown(int keyCode, KeyEvent event)
{
//replaces the default 'Back' button action
if(keyCode==KeyEvent.KEYCODE_BACK)
{
finish();
return true;
}
答案 8 :(得分:-1)
点击后退按钮。
Intent intent = new Intent(Main Class.this,
Name of classactivity on which you want to go.class);
startActivity(intent);