我有两个问题。两者都扩展了Activity。
A类
public void displayinfo()
{
setContentView(R.layout.dynamicinfo);
//Add some buttons dynamically here
//do some processing
// move on to Class B
}
在B组中:如果按下BACK按钮,我想在UI中返回A类状态。
B类
//Register a listener for this button
Backbutton.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
Log.i("setOnClickListener", "Pressed Back Button ");
Toast.makeText(mycontext, "Pressed Back Button", Toast.LENGTH_SHORT).show();
//HERE I want to go back class's function in UI as well as restoring the sttae for that screen.
}
我该怎么做? 我环顾了一些问题。 他们没有清楚地回答我在寻找什么。然后发布。
谢谢。我想我在B类的UI屏幕上创建的布局上添加了自己的后退按钮 - 而不是使用键盘上的常规“后退”按钮。可能是那个问题。
答案 0 :(得分:2)
如果A类和B类都是活动,而B类活动是从A类活动开始的,那么你应该只完成()B类活动,然后你应该返回A类并保留其状态。
我不确定你是否在问这个,因为这似乎是一个非常基本的android活动流程。
答案 1 :(得分:1)
A类:
public void displayinfo()
{
setContentView(R.layout.dynamicinfo);
//Add some buttons dynamically here
//do some processing
// move on to Class B
/*For starting activity B use this code*/
Intent in=new Intent(this,CalssB.class);
startActivity(in);
}
现在在B级你只需要完成活动B代码:
Backbutton.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
Log.i("setOnClickListener", "Pressed Back Button ");
Toast.makeText(mycontext, "Pressed Back Button", Toast.LENGTH_SHORT).show();
/* This will finish current activity B and back to activity A with same state.*/
finish();
}
请参阅此链接以了解详细信息。 http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
答案 2 :(得分:0)
以下代码可帮助您在按下后退按钮时将活动从B类导航到A类。
ClassA.java
/***********/
startActivity(new Intent(ClassA.this,CalssB.class);
ClassB.java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_BACK)
{
finish();
//startActivity(new Intent(ClassB.this,ClassA.class));
Toast.makeText(getApplicationContext(), "Backbutton pressed", 30).show();
}
return super.onKeyDown(keyCode, event);
}
此代码用于后退按钮.... 如果在按钮单击中您需要将页面导航到ClassA意味着使用以下代码中的任何一个..
ClassB.java
btn.onClick(){
finish();
(or)
startActivity(new Intent(ClassB.this,ClassA.class));
}
答案 3 :(得分:0)
您移动到ClassB
的具体情况如何?您可以使用ClassB
移至Intent
。
public void displayinfo()
{
setContentView(R.layout.dynamicinfo);
//move on to Class B like this:
Intent k = new Intent(this, ClassA.class);
startActivity(k);
}
现在,当您转到ClassB
并按下后退按钮时,它会自动移至ClassA
答案 4 :(得分:0)
最后我弄清楚出了什么问题。 从每个活动开始,我在通过Intent机制调用下一个活动之前调用了finish()。 因此,当从不同的活动中按下“后退”按钮时,没有什么可去的。 因此APP曾经崩溃。
感谢各种回复。 非常感激。 与往常一样,从每个回应中学到新的东西。
我通过删除需要存在的活动中的finish()来修复它。 我没有必要重新做或重建UI(甚至是动态按钮)。 : - )
答案 5 :(得分:-1)
添加
function addReturn(ClassA back){
// back.take over the control
}
如果您希望灵活处理视口,我会使用interfase或扩展名。
在Class a中,在你之前控制你需要将'this'添加到b类。