2011. 4. 21. 12:14 안드로이드

기본적인 명시적 호출방식
     Intent i = new Intent(HelloGallery.this, SecontActivity.class);
     startActivity(i);
Component를 통한 호출
     ComponentName cn = new ComponentName("my.andr.u8",  "my.andr.u8.SecontActivity");
     Intent i2 = new Intent();
     i2.setComponent(cn);
     startActivity(i2);

외부파일을 호출한다 (이거 대박 신기함)
     Intent i3 = new Intent("com.ioedu.android");
     startActivity(i3);
     /*Manifest를 아래 처럼해놓으면 외부 파일에서도 해당 액티비티를 실행 할수있따 
       <activity android:name="SecontActivity">
        <intent-filter>
       <action android:name="com.ioedu.android">
       </action>
       <category  android:name="android.intent.category.DEFAULT">
       < /category>
       </intent-filter>
       </activity>
      */

  전화다이얼 뜨는 인텐츠다 ,카메라 도 실행 시킬 수있다
     Intent i4 = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:1234567"));
     startActivity(i4);     
/*   Manifest.xml
     <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
*/
     
   인터넷창이 뜬다 http를 "tel:123214" 하면 전화창을 띄울수있따
     Intent i5 = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com"));
     startActivity(i5);
/*   Manifest.xml
     <uses-permission android:name="android.permission.INTERNET"></uses-permission>
*/
     



액티비티끼리 데이타 주고 받기
aActivity.java

값을 보내는 부분{
        Intent i = new Intent(this, bActivity.class);
        i.putExtra("name", "홍길동");
        startActivityForResult(i, ACTIVITY_EDIT);
    }

결과값을 기대하면서 보내는 부분{
Intent i = new Intent(this, bActivity.class);
 //결과값을 기대하는 인텐트 부른다  
startActivityForResult(i, ACTIVITY_CREATE);
}

 값이 들어오는부분
 protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
       if(intent == null)
        return;
        Bundle extras = intent.getExtras();
        switch(requestCode) {
        case ACTIVITY_CREATE:
            String title = extras.getString("name");
           break;
          case ACTIVITY_EDIT:
            String editTitle = extras.getString("name");
            break;

 
.
.
.
}


bActivity.java

Intent i = getIntent();
  if(i.getExtras() != null){//받아오는 값이 있나?? 잇으면 세팅
   String s = i.getStringExtra("name").toString();
   TextView tv = (TextView)findViewById(R.id.textView1);
   tv.setText(s);
  }

  findViewById(R.id.btn_result).setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Intent i = new Intent();//인텐트에 값을 실어 결과값을 기다리는 인텐츠에게 보낸다
    i.putExtra("name", "잘했어요");
    setResult(RESULT_OK, i);
    finish();
   }});

'안드로이드' 카테고리의 다른 글

MessageHandler  (0) 2011.04.21
Alert 다이얼로그  (0) 2011.04.21
안드로이드 shake 입력 결과 받기 체크  (0) 2011.03.17
이펙트 사운드 다운로드 사이트  (0) 2010.12.21
adb failed  (0) 2010.12.20
posted by 욱이다