-2

我有两个问题。两者都扩展了 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 屏幕中创建的布局上添加了自己的后退按钮——而不是使用键盘上的常规“后退”按钮。可能这就是问题所在。

4

6 回答 6

2

如果 A 类和 B 类都是活动,并且 B 类活动是从 A 类活动开始的,那么您应该只完成 B 类活动,然后您应该返回 A 类并保留其状态。

我不确定您是否在问这个问题,因为这似乎是一个非常基本的 android 活动流程。

于 2012-05-30T05:26:09.460 回答
1

甲类:

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

于 2012-05-30T05:26:53.237 回答
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));

    }
于 2012-05-30T05:27:06.620 回答
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,按下Back按钮,它会自动移动到ClassA

于 2012-05-30T05:28:28.603 回答
0

最后我弄清楚出了什么问题。在通过 Intent 机制调用下一个活动之前,我从每个活动中调用了一个 finish()。因此,当从不同的活动中按下后退按钮时,没有什么可去的。因此该APP曾经崩溃。

感谢所有友好的回应。非常感激。与往常一样,从每个响应中都学到了一些新东西。

我通过删除需要存在的活动中的完成()来修复它。我不必重新做或重新构建 UI(甚至是动态按钮)。:-)

于 2012-06-01T04:35:06.713 回答
-1

在 b 类中添加

function addReturn(ClassA back){
// back.take over the control
}

如果您想灵活地使用您的视口,我会使用接口或扩展。

在 a 类中,在通过控制之前,您需要将“this”添加到 b 类。

于 2012-05-30T05:24:01.767 回答