0

이것이 내 첫 번째 게시물입니다. 활동 관리에 문제가 있습니다. 나는 몇몇 주요 편집 활동을 포함하는 다른 활동을 시작하는 나의 주요 활동을 가지고있다. 실행 코드는 다음과 같습니다.마무리 작업은 먼저 EditTexts를 지우고 수행해야 할 작업을 수행합니다.

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

새로 시작한 활동 및 일부 버튼에 대한 EditText가 거의 없습니다. 버튼 중 하나는 나를 주요 활동으로 되돌립니다. OnTouchEvent에서 나는 간단한 것을 실행합니다 finish(); 모두 간단하고 잘 작동해야하지만, 내 기본 활동으로 돌아 가야하는 버튼을 클릭하면 먼저 내 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와 하나의 문제는 다음과 같습니다. 두 번째 활동에서 처음으로 뒤로 버튼을 클릭하면 다시 내 주요 활동으로 돌아 가지 않습니다. 활동에 대한 모든 EditTexts를 지우고 첫 번째 요소에 포커스를 설정합니다. 두 번째 버튼을 클릭하면 마침내 주요 활동으로 되돌아갑니다.

나는 EditText가있는 NextClass 클래스의 전체 코드를 제공하고 있습니다.

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

문제를 재현하는 데 필요한 최소한의 완전한 코드를 게시하는 데 도움이 될 수 있습니다. 당신이 묘사 한 것처럼 나는 결코 문제가 없었습니다. –

+0

나는 당신이 말하는 것을 이해하는 데 어려움을 겪고 있습니다. 단추를 두 번 눌러 뒤로 이동 하시겠습니까? 아니면 한 번만 이동 하시겠습니까? 또한 좀 더 많은 코드 (버튼의 OnTouchEvent 클래스)를 제공 할 수 있다면 더 쉽게 도움을받을 수 있습니다. –

+0

onTouch에서 true를 반환하려고 시도 했습니까? false는 사용자가 직접 이벤트를 처리하지 않았으며 터치 이벤트가 뷰 위로 전파됨을 의미합니다. – Spidy

답변

1

고객님의 EditText은 (는) 삭제되지 않았습니다. onTouch() 메서드가 두 번 호출되었으므로 두 개의 NextClass 액티비티를 시작하면 ACTION_DOWN에 한 번, Action_UP에 한 번만 호출됩니다. 그리고 맨 위에있는 것을 끝내면 다음 것이 나타납니다. 버튼의 클릭 이벤트를 처리하기 위해 ActualClass 활동에서 OnClickListener을 사용하는 경우 모든 것이 정상적이어야합니다.

+0

감사합니다. 이것은 많은 도움이되었습니다. 당신 말이 맞아요. 제 활동이 두 번 열립니다. – Deimos

+0

좋아요! 이제이 질문을 수락 된 것으로 표시 할 수 있습니다. – Michael

관련 문제