0

这是我的第一篇文章。 我有管理活动的问题。我有我的主要活动,它启动其他活动包含一些EditTexts。这里是启动代码:整理活动首先清除EditTexts,然后才做它应该做的事

 Intent myIntent = new Intent(ActualClass.this, NextClass.class); 
     startActivity(myIntent); 

我对新推出的活动和一些按钮有几个EditTexts。其中一个按钮让我回到主要活动。在它的OnTouchEvent上,我运行简单的finish();这一切似乎很简单,应该工作得很好,但是当我点击按钮应该让我回到我的主要活动,它首先清除我的EditTexts。当我第二次点击它时,它终于让我回到我的主要活动。我应该怎么做,以防止清除EditTexts并在第一次点击后返回到我的主要活动?我非常感谢你的帮助。

对不起,我添加了更多的代码。因此,这里是其推出的第二个活动的听众,将一个有EditTexts:

public boolean onTouch(View v, MotionEvent me) { 
     switch(v.getId()){ 

     case R.id.buttonForward: 
      Intent myIntent = new Intent(ActualClass.this, NextClass.class); 
      startActivity(myIntent); 
      break; 

     default: 
      break; 

     } 
     return false; 
    } 

而关于第二项活动,我的问题似乎发生,按钮听者看起来是这样的:

buttonBack.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View arg0, MotionEvent arg1) { 
      finish(); 
      return false; 
     } 
    }); 

问题是:当我第一次点击第二个活动的后退按钮时,它不会让我回到我的主要活动 - 它清除所有活动的EditTexts并将焦点设置在第一个元素上。当我第二次点击按钮时,它终于让我回到主要活动。

我提供了NextClass类的完整代码,它带有EditTexts。

public class NextClass extends Activity implements OnTouchListener { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.nextclasslayout); 

     final EditText firstEditText = (EditText) findViewById(R.id.firstEditTextName); 
     final EditText secondEditText = (EditText) findViewById(R.id.secondEditTextName); 

     ImageButton buttonBack = (ImageButton) findViewById(R.id.imageButtonBack); 


     buttonBack.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View arg0, MotionEvent arg1) { 
       finish(); 
       return true; 
      } 
     }); 

    }  

    @Override 
    public boolean onTouch(View arg0, MotionEvent arg1) { 

     return false; 
    } 

} 
+1

人们可能会更好地帮助您发布复制问题所需的完整小代码。正如你所描述的,我从来没有遇到过问题。 – 2011-04-27 18:44:46

+0

我很难理解你在说什么。你是否想要按两次按钮返回,或只是一次?另外,如果你可以提供更多的代码(也许是你的Button的OnTouchEvent类),那么帮助你更容易。 – 2011-04-27 18:47:26

+0

你有没有试过从onTouch返回true?错误意味着你没有自己处理事件,触摸事件在视图中传播 – Spidy 2011-04-27 19:07:46

回答

1

我认为你的EditText s没有被清除。您只需启动两个NextClass活动,因为onTouch()方法被调用两次:一次为ACTION_DOWN,一次为Action_UP。当你完成最上面的一个时,下一个出现。如果您在ActualClass活动中使用OnClickListener活动来处理按钮中的点击事件,则一切都应该没问题。

+0

谢谢!这帮了很多。你是对的 - 我的活动被调用两次。 – Deimos 2011-04-27 20:02:49

+0

太棒了!现在您可以将此问题标记为已接受。 – Michael 2011-04-28 04:21:15

相关问题