2014-06-18 2 views
-1

Android의 땅에서 나는 시작했습니다. 찾을 수없는 것 중 하나는 기본적인 평범한 사람의 예입니다. 어떻게 수행합니까?Xamarin Android 하위 작업을 실행하는 동안 레이아웃 요소를 업데이트하는 방법

버튼을 누르십시오. 버튼이 새로운 활동을 호출합니다. 새 활동은 데이터 저장 선택의 사용자 선택을 활동 기본 설정으로 가져옵니다. 새 작업이 완료되었습니다. 주 활동으로 돌아 가기 - 이전 활동에서 선택한 텍스트로 UI를 새로 고칩니다.

버튼 클릭 이벤트를 실행하면 해당 활동이 호출되지만 다른 기능은 계속 실행됩니다. 텍스트 요소의 업데이트는 하위 작업이 호출 된 후에 실행됩니다. 하위 액티비티가 finshed되고 컨트롤이 주요 액티비티를 되돌릴 때 이것이 발생하기를 바랍니다.

이상 - 변경 사항을 포함한 활동 재개 활동보기를 보는 방법.

buttonTask.Click += delegate { 
    Intent TaskSet = new Intent(); 
    TaskSet.SetClass (this, typeof(TaskSelection)); 
    this.StartActivity(TaskSet); 
    TaskName.Text= settingsRFID.GetString("TaskName",""); 
}; 

답변

2

startActivity(Intent) 대신 startActivityForResult(Intent, int)을 사용하는 것이 좋습니다.

두 번째 활동이 끝나면 활동은 onActivityResult(int requestCode, int resultCode, Intent data)으로 콜백됩니다.

두 번째 활동은 setResult(int, Intent)을 호출하여 data 인 텐트를 설정하여 첫 번째 활동으로 다시 전달해야합니다.

귀하의 활동 this-

MainActivity처럼 보일 수 있습니다

public class MainActivity : Activity 
{ 
    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     buttonTask.Click += delegate { 
      Intent TaskSet = new Intent(); 
      TaskSet.SetClass (this, typeof(TaskSelection)); 
      this.StartActivityForResult(TaskSet, 123); 
      TaskName.Text= settingsRFID.GetString("TaskName",""); 
     }; 
    } 

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) 
    { 
     base.OnActivityResult(requestCode, resultCode, data); 

     if (requestCode == 123) 
     { 
      if (resultCode == Result.Ok) 
      { 
       data.GetStringExtra("myStringKey"); 
      } 
     } 
    } 
} 

TaskSelection : 자세한 내용은

public class TaskSelection : Activity 
{ 
    private void returnResults() 
    { 
     var resultData = new Intent(); 
     resultData.PutExtra("myStringKey", "value"); 
     SetResult(Result.Ok, resultData); 
    } 
} 

, Starting Activities and Getting Results를 참조하십시오.

+0

정확히 내가 뭘 찾고 있었는지. 유일한 비틀기는 string을 returnResults에 전달한 다음 "value"를 문자열로 바꾼 것입니다. 고맙습니다. – user1441213

관련 문제