2016-08-13 3 views
0

안녕하세요.이 작업을 원합니다 : 작업 표시 줄 뒤로 버튼을 누르면 이전 활동 값을 보냅니다. 그리고 거기에 머무르는 가치를 확인하십시오. 뒤로 버튼을 누르면 이전에 값을 전송합니다. 활동

public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       // app icon in action bar clicked; go home 
       //i'm giving error because i mustnt create new activity i must to send previous activity.. 
       LoginActivity yeni=new LoginActivity(); 
       yeni.setPassword(""); 
       this.finish(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 

    } 

내가 뒤로 버튼 응용 프로그램을 로그 아웃하고 loginscreen을 이동하지만 같은 값 다시 로그인 활동을 로그인과 주요 활동을 시작하지 않으면 때문에 나는 loginactivity에 값을 변경해야 눌러

...

분명히, 뒤로 버튼을 눌렀을 때 LoginActivity의 메소드에 null 값을 보내야합니다. 이처럼 :

거기 체재하고 새 로그인을 기다리는 _passwordtext=null 알고
public void setPassword(String comingpass) 
    { 
     _passwordText.setText(comingpass); 

    } 

...

+1

사용에 startActivityForResult – comeback4you

답변

0
// call activity with startActivityForResult 
Intent i = new Intent(this, SecondActivity.class); 
startActivityForResult(i, 1); 


//back press 
switch (item.getItemId()) { 
     case android.R.id.home: 
Intent returnIntent = new Intent(); 
returnIntent.putExtra("flag",1); 
setResult(Activity.RESULT_OK,returnIntent); 
finish(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 


//handle back in main activity 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

if (requestCode == 1) { 
    if(resultCode == Activity.RESULT_OK){ 
     if(data.getIntExtra("flag",0)==1){ 
     yeni.setPassword(""); 
    } 
    } 
    if (resultCode == Activity.RESULT_CANCELED) { 
     //Write your code if there's no result 
    } 
} 
} 
+0

당신이 좋은 답변,하지만 당신은 여기에 두 개의 인수 기본값 data.getIntExtra ("플래그"를 복용 data.getIntExtra ("플래그")를 편집 할 수 있습니다 감사합니다 0 통과) 올바른 수 있습니다. –

+0

예 오른쪽 .. 편집 됨 .. – comeback4you

0
in Activity B: 

    @Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    Intent intent = new Intent(); 
    intent.putExtra("MESSAGE", strtext + ""); 
    setResult(2, intent); 


      super.onBackPressed(); 
} 

in Activity A: 
     Intent itemintent = new Intent(contextt, ActivityB.class); 
       Bundle b = new Bundle(); 
       b.putInt("mflag", 0); 
       itemintent.putExtra("android.intent.extra.INTENT", b); 
       startActivityForResult(itemintent, 2); 

     @Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    try { 
     super.onActivityResult(requestCode, resultCode, data); 
     String sSuName = data.getStringExtra("MESSAGE"); 
     // txtfavouratecount.setText(sSuName); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
관련 문제