2014年10月30日 星期四

利用intent呼叫Activity及傳送資料

利用intent呼叫Activity及傳送資料


 
Activity1程式碼

public class Activity1 extends Activity
{

     private Button bt1;

     @Override
     protected void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_activity1);
       
        
         bt1 = (Button) findViewById(R.id.button1);
         bt1.setOnClickListener(new Button.OnClickListener()
         {

              @Override
              public void onClick(View v)
              {
                  // TODO Auto-generated method stub
                  Intent it = new Intent();
                  it.setClass(Activity1.this, Activity2.class);
                  it.putExtra("pass", "ispassword");
                  it.putExtra("user", "ZCFang");

                  startActivity(it);
              }
         });
     }

}

說明:
1.使用intent.setClass設定欲開啟的Activity
2.使用intent.putExtra 放入欲傳送的資訊,若資料量很大也可以選擇使用Bundle物件加入資訊,再藉由intent傳送
3.使用startActivity傳送intent並開啟指定的Activity

Activity2程式碼

public class Activity2 extends Activity
{
     private Button bt2;

     @Override
     protected void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_activity2);

        
         Bundle b = getIntent().getExtras();

         String str = b.getString("user") + " : " + b.getString("pass");
         Toast.makeText(this, str, Toast.LENGTH_LONG).show();
         bt2 = (Button) findViewById(R.id.button2);
         bt2.setOnClickListener(new Button.OnClickListener()
         {

              @Override
              public void onClick(View v)
              {
                  // TODO Auto-generated method stub
                  Intent it = new Intent();
                  it.setClass(Activity2.this, Activity1.class);
                  startActivity(it);

              }
         });
     }

}
說明:
1.使用Bundle接收使用者傳送過來的資訊
2.再依資料型別從Bundle物件中取出資料

沒有留言:

張貼留言