Android中使用Intent進行表單切換,並且傳值和自訂類的對象詳解 .

來源:互聯網
上載者:User
 

轉自http://blog.csdn.net/newflypig/article/details/6246705

 

 

在Android中,Intent對象負責各個Activity視窗之間的切換,同時他更擔負起資料轉送重任。

 

一般情況下,使用Intent對象進行簡單視窗切換的代碼如下:

view plaincopy to clipboardprint?
  1. Intent i=new Intent();//建立一個Intent對象   
  2. i.setClass(Login.this,MainTable.class);//第一個參數為當前Activity對象,第二個參數是需要切換出來的類名   
  3. Login.this.startActivity(i);//當前Activity進行切換工作,此時將當前Activity轉入休眠狀態,不再使用CPU,只是在RAM中留有快照  

Intent i=new Intent();//建立一個Intent對象i.setClass(Login.this,MainTable.class);//第一個參數為當前Activity對象,第二個參數是需要切換出來的類名Login.this.startActivity(i);//當前Activity進行切換工作,此時將當前Activity轉入休眠狀態,不再使用CPU,只是在RAM中留有快照

 

如果要在兩個表單之間切換,並且將一些基本的參數傳給第二個表單,這時候需要在Intent對象中put響應的索引值對

代碼如下:

view plaincopy to clipboardprint?
  1. Intent i=new Intent();  
  2. i.setClass(Login.this,MainTable.class);  
  3. i.putExtra("key", "value");//Intent中壓入一組索引值對   
  4. Login.this.startActivity(i);  

Intent i=new Intent();i.setClass(Login.this,MainTable.class);i.putExtra("key", "value");//Intent中壓入一組索引值對Login.this.startActivity(i);

 

第二個表單中需要將Intent對象中的索引值對取出,使用下面語句:

 

view plaincopy to clipboardprint?
  1. String value=this.getIntent().getCharSequenceExtra("key");  

String value=this.getIntent().getCharSequenceExtra("key");

 

如此便完成簡單的字串參數的傳值和取出,如果想實現自訂類的對象在兩個表單間傳遞,其實也非常簡單,只需要將自訂類實現Serializable可序列化介面即可,這個介面純粹是一個標記,不需要你實現任何函數,實現這個介面的類可以在程式之間,線程之間,網路通訊之間進行傳值。下面示範一個執行個體:

view plaincopy to clipboardprint?
  1. @SuppressWarnings("serial")  
  2. public class User implements Serializable{//User類實現了可序列化介面   
  3.     private String id;  
  4.     private String name;  
  5.     private String department;  
  6.       
  7.     private boolean pow_freeNumber;  
  8.     private boolean pow_report;  
  9.       
  10.     public User(String id){  
  11.         this.id=id;  
  12.     }  
  13. }  

@SuppressWarnings("serial")public class User implements Serializable{//User類實現了可序列化介面private String id;private String name;private String department;private boolean pow_freeNumber;private boolean pow_report;public User(String id){this.id=id;}}

 

設計了一個User類,setter&getter函數我就貼出來,比較長,在資料庫編程中我們管這種類叫做VO類

實現了可序列化介面後我們便可以將這個類的對象壓入Intent中去

 

view plaincopy to clipboardprint?
  1. Intent i=new Intent();  
  2. i.setClass(Login.this,MainTable.class);  
  3. User user=new User("001","丁丁");//測試資料   
  4. user.setDepartment("業務支撐中心");  
  5. user.setPow_freeNumber(flag);  
  6. user.setPow_report(true);  
  7. i.putExtra("user", user);  
  8. Login.this.startActivity(i);  
  9. Login.this.finish();      

Intent i=new Intent();i.setClass(Login.this,MainTable.class);User user=new User("001","丁丁");//測試資料user.setDepartment("業務支撐中心");user.setPow_freeNumber(flag);user.setPow_report(true);i.putExtra("user", user);Login.this.startActivity(i);Login.this.finish();

 

在第二個表單中利用下面這句話,將整個User對象取出來,便可以直接使用此對象了

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.