2013-04-13 1 views
1

이전 액티비티로 이동하기 전에 일부 확인 작업을 수행하기 위해 표준 ActionBar를 재정의하고 싶습니다. 나는 editText에 입력 된 것이 있는지 확인하고 싶습니다. 만약 그렇다면 무언가가 입력 되든지이 창에 머무르 든 뒤로 돌아갈 지 여부를 묻고 싶습니다. 나는 단지 else 루프를 넣을 곳을 knwo하고 싶다. 표준 ActionBar 기능을 재정의하는 방법은 무엇입니까?

은하지 OnCreate이다

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     // Show the Up button in the action bar. 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
    } 

두 방법 :

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activityB, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

답변

0

사용자 입력에 반응 장소 onOptionsItemSelected이다. ActionBar의 원하는 항목의 사례 블록에서 무언가가 입력되었는지 여부를 if(EditText.getText() != null)으로 확인할 수 있습니다.

편집 :

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     if(yourEditText.getText() != null){ 
      // ask user what to do 
     } else { 
      // nothing was typed -> move to home activity 
      NavUtils.navigateUpFromSameTask(this); 
     } 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

당신이 당신의 대답을 나 전체 onOptionsItemSelected 방법을 쓰기 위해 편집 할 수 있습니다? –

+0

완료. 어쩌면 당신은 이것을 재 설계해야한다는 것을 명심하십시오. 사용자가 무엇을 해야할지 선택할 수 있기를 원하기 때문에 '대화 상자'또는 이와 유사한 것을 사용하게됩니다. –

+0

감사! 위대한 작품! –

관련 문제