android startActivityForResult 사용 방법 소개

4754 단어
Activity 점프 다 알아요. startActivity(Intent) 그런데 다음 경우는요?Activity 1에서 Activity 2로 넘어가는데 Activity 2에서 Activity 1로 다시 돌아가야 돼요?누군가는'Activity2에서 startActivity()를 사용하면 되잖아요. 그렇지만 startActivityForResult()는 이 작업을 직접 완성할 수 있어요. [예]Activity1: 사용자가 입력한 2개의 문자열을 수신하기 위해 2개의 EditText가 있습니다. 이 2개의 문자열을 연결해 주십시오. 저는 현재 연결된 작업을 Activity2에 맡기고 연결된 문자열을 Activity1에 되돌려 주고 [코드]를 표시합니다.Activity1 구축에 필요한 인터페이스 Java 코드
 
  
  
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    >  
    android:id="@+id/first" 
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content"   
    />  
    android:id="@+id/second" 
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content"   
    />  
 

2. EditText 사용자 입력 2개 얻기
 
  
first = (EditText) findViewById(R.id.first);  
        second = (EditText) findViewById(R.id.second); 

3. Bundle에 문자열을 넣고 Intent에 배치한 다음 보내기
 
  
Intent i = new Intent(this, Activity2.class);  

        Bundle b = new Bundle();  

        b.putString("first", first.getText().toString());  
        b.putString("second", second.getText().toString());  

        i.putExtras(b);  

        startActivityForResult(i,10); 

보충:
 
  
public void startActivityForResult (Intent intent, int requestCode)   

Intent intent: Activity  

int requestCode: Intent  

4. View 모니터 등록
 
  
findViewById(R.id.start).setOnClickListener(new OnClickListener(){  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                sendCalculate();  
            }  
        }); 

5.Activity2의 인터페이스를 구축하여 처리된 결과를 되돌려줍니다
 
  
  
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    >  
 

6. 전달된 Intent와 전달된 문자열 2개를 받아 연결
 
  
Intent i = this.getIntent();  

        Bundle b = i.getExtras();  

        String v1 = b.getString("first");  
        String v2 = b.getString("second");  

        value = v1 + v2; 

7. Intent 정의 및 반환 결과 저장 및 반환
 
  
Intent i = new Intent();  

        Bundle b = new Bundle();  
        b.putString("CALCULATION", value);  

        i.putExtras(b);  

        this.setResult(RESULT_OK, i);  
        this.finish(); 

8.일을 끝냈습니까?그럼요. Activity 1도 데이터를 받아서 보여주는 거 잊지 마세요.
 
  
protected void onActivityResult(int requestCode, int resultCode,  
                                    Intent data){  
        switch (resultCode){  
        case RESULT_OK:  
            Bundle b = data.getExtras();  

            String string = b.getString("CALCULATION");  

            updateText(string);  
        }  
    } 

좋은 웹페이지 즐겨찾기