Android Lab4 - 程式語言實驗室


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Android Lab4 - 程式語言實驗室

  1. 1. Android Lab 4 cs241001 2009.12.15
  2. 2. Intent <ul><li>An intent is an abstract description of an operation to be performed. </li></ul><ul><li>Intent to do something, or intent to go somewhere. </li></ul><ul><li>Using Bundle to carry data. </li></ul><ul><li>Reference </li></ul><ul><ul><li>,%20java.lang.Class%3C?%3E) </li></ul></ul>
  3. 3. Intent API <ul><li>public Intent setClass (Context packageContext , Class<?> cls ) </li></ul><ul><ul><li>Set the class that intent to go. </li></ul></ul><ul><ul><li>packageContext : A Context of the application package implementing this class. </li></ul></ul><ul><ul><li>cls : The class name to set </li></ul></ul><ul><li>public Intent setClassName (String packageName , String className ) </li></ul><ul><ul><li>Same as above </li></ul></ul><ul><ul><li>packageName : The name of the package implementing the desired component. </li></ul></ul><ul><ul><li>className : The name of a class inside of the application package that will be used as the component for this Intent. </li></ul></ul><ul><li>public Intent putExtras (Bundle extras) </li></ul><ul><ul><li>Add a set of extended data to the intent. </li></ul></ul><ul><li>public Bundle getExtras () </li></ul><ul><ul><li>Retrieves a map of extended data from the intent. </li></ul></ul>
  4. 4. Bundle <ul><li>A mapping from String values to various Parcelable types. </li></ul><ul><li>A bundle to store data of various type. </li></ul><ul><li>A set of put / get method to put in and get off data. </li></ul><ul><ul><li>public void putString (String key, String value ) </li></ul></ul><ul><ul><li>public String getString (String key ) </li></ul></ul>
  5. 5. New Class and Layout <ul><li>New class </li></ul><ul><ul><li>Select src  pkg  mouse right click  New  Class  Enter class name  finish </li></ul></ul><ul><ul><li>Use startActivity (Intent intent ) to switch to another activity </li></ul></ul><ul><li>New layout </li></ul><ul><ul><li>Select res  layout  mouse right click  New  Other…  Android  Android XML File  Enter xml file name  finish </li></ul></ul><ul><ul><li>Use setContentView ( R.layout. layoutName ) to set the activity layout </li></ul></ul>
  6. 6. Example <ul><li>Edit text in Activity1 and press button to switch to activity2. Activity2 show the string typed in Activity1. </li></ul>
  7. 7. <ul><li>package tw.nthu.cs241001; </li></ul><ul><li>import; </li></ul><ul><li>import android.content.Intent; </li></ul><ul><li>import android.os.Bundle; </li></ul><ul><li>import android.view.View; </li></ul><ul><li>import android.view.View.OnClickListener; </li></ul><ul><li>import android.widget.Button; </li></ul><ul><li>import android.widget.EditText; </li></ul><ul><li>public class IntentEx extends Activity { </li></ul><ul><li>/** Called when the activity is first created. */ </li></ul><ul><li>Button myButton ; </li></ul><ul><li>EditText myEdit ; </li></ul><ul><li>public void onCreate(Bundle savedInstanceState) { </li></ul><ul><li>super.onCreate(savedInstanceState); </li></ul><ul><li>setContentView(R.layout.main); </li></ul>
  8. 8. <ul><li>myButton = (Button) findViewById(; </li></ul><ul><li>myEdit = (EditText) findViewById(; </li></ul><ul><li>//set onClickListerner </li></ul><ul><li>myButton.setOnClickListener( event ) ; </li></ul><ul><li>} </li></ul><ul><li>private OnClickListener event = new OnClickListener(){ </li></ul><ul><li> public void onClick(View v){ </li></ul><ul><li>// new intent and set the class which intent to </li></ul><ul><li> Intent intent = new Intent(); </li></ul><ul><li> intent. setClassName ( &quot;tw.nthu.cs241001&quot; , IntentExTo.class.getName()); </li></ul><ul><li> //new bundle and put the string in </li></ul><ul><li> Bundle bundle = new Bundle(); </li></ul><ul><li> bundle. putString (&quot;StrKey&quot;,myEdit.getText().toString()); </li></ul><ul><li> //assign the bundle to the intent </li></ul><ul><li> intent. putExtras (bundle); </li></ul><ul><li> //switch to another activity </li></ul><ul><li> startActivity(intent); </li></ul><ul><li> } </li></ul><ul><li>}; </li></ul><ul><li>} </li></ul>
  9. 9. <ul><li>package tw.nthu.cs241001; </li></ul><ul><li>import; </li></ul><ul><li>import android.os.Bundle; </li></ul><ul><li>import android.widget.TextView; </li></ul><ul><li>public class IntentExTo extends Activity { </li></ul><ul><li>TextView myText ; </li></ul><ul><li>public void onCreate(Bundle savedInstanceState) { </li></ul><ul><li>super.onCreate(savedInstanceState); </li></ul><ul><li>// loaded mylayout to this activity </li></ul><ul><li>setContentView(R.layout. mylayout ); </li></ul>
  10. 10. <ul><li>// get bundle of this intent from this activity </li></ul><ul><li>Bundle bunde = this.getIntent().getExtras(); </li></ul><ul><li>// get string from the bundle </li></ul><ul><li>String str = bunde. getString (&quot;StrKey&quot;); </li></ul><ul><li>// set TextView text to str </li></ul><ul><li>myText =(TextView)findViewById(; </li></ul><ul><li>myText.setText(str) ; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  11. 11. AndroidManifest.xml <ul><li>Add an actitvity label of new activity </li></ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> </li></ul><ul><li><manifest xmlns:android=&quot;; </li></ul><ul><li>package=&quot;tw.nthu.cs241001&quot; </li></ul><ul><li>android:versionCode=&quot;1&quot; </li></ul><ul><li>android:versionName=&quot;1.0&quot;> </li></ul><ul><li><application android:icon=&quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot;> </li></ul><ul><li><activity android:name=&quot;.IntentEx&quot; </li></ul><ul><li>android:label=&quot;@string/app_name&quot;> </li></ul><ul><li><intent-filter> </li></ul><ul><li><action android:name=&quot;android.intent.action.MAIN&quot; /> </li></ul><ul><li><category android:name=&quot;android.intent.category.LAUNCHER&quot; /> </li></ul><ul><li></intent-filter> </li></ul><ul><li></activity> </li></ul><ul><li> <activity android:name=&quot;IntentExTo&quot;></activity> </li></ul><ul><li></application> </li></ul><ul><li></manifest> </li></ul>
  12. 12. Lab <ul><li>MyStore </li></ul><ul><li>Lab requirement </li></ul><ul><ul><li>Activity01 </li></ul></ul><ul><ul><ul><li>Contain at least two kind of stuff sold in your store </li></ul></ul></ul><ul><ul><ul><li>Show the stuff name and price, and an EditText to enter the number </li></ul></ul></ul><ul><ul><ul><li>Contain an Other field for user to fill up other stuff name and price </li></ul></ul></ul><ul><ul><ul><li>An Enter Button to switch to activity02 </li></ul></ul></ul>
  13. 13. Lab <ul><li>Lab requirement </li></ul><ul><ul><li>Activity02 </li></ul></ul><ul><ul><ul><li>Show the number of buying stuff and the name of “other” stuff. </li></ul></ul></ul><ul><ul><ul><li>Show the total price of the buying stuff. </li></ul></ul></ul><ul><ul><ul><li>A button Finish to finish and quit the activity. </li></ul></ul></ul><ul><ul><ul><ul><li>Use this.finish() </li></ul></ul></ul></ul><ul><ul><ul><li>A button Back to go back to activity01 </li></ul></ul></ul>
  14. 14. Lab <ul><li>Example layout : layout01 </li></ul>EditText Button TextView Apple $15 Orange $10 Other $ 2 5 Enter banana 30
  15. 15. Lab <ul><li>Example layout : layout02 </li></ul>EditText Button TextView Apple : 2 Orange : 5 Other : banana Total $ 110 Back Finish