一、activity:
/*
 * 创建activity的要点
 * 继承activity,复写onCreate方法(activity第一次运行显示在手机的时候,就会调用onCreate方法。)
 * 每一个activity都需要在/acitivity/AndroidManifest.xml文件中进行配置
 * 为activity添加必要的控件
 */
public class activity extends Activity {
}

1 注册控件(/layout/main.xml)
<TextView 
 android:id="@+id/myTestView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
 <Button
  android:id="@+id/myButton"
  android:layout_width="fill_parent"//和父控件的宽度一样
  android:layout_height="wrap_content"//符合其中内容的高度
  />
2设置控件:
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  TextView myTextView = (TextView) findViewById(R.id.myTestView);
  Button myButton = (Button) findViewById(R.id.myButton);
  myTextView.setText("我的第一个activity");
  myButton.setText("请点击我吧");

 }

二、Activity 和 Intent
1、多个activity之间的关系
了解intent:
component name:(指定两个activity)
Action:(intent启动activity,然后告诉activity做什么动作)
Data:(传送的数据)
Extras:(键值对,传递  接受)

现在有两个activity,IntentActivity和OtherActivity
要求是:点击IntentActivity上面的一个按钮跳转到OtherActivity。

//在这里传送
private Button myButton = null;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myButton = (Button)findViewById(R.id.myButton);
        myButton.setText("点击我");
//        将下面定义的监听器捆绑在按钮上,
        myButton.setOnClickListener(new MyButtonListener());
    }
    //创建一个监听器,点击按钮的时候,执行这一个操作
    class MyButtonListener implements OnClickListener{

  @Override
  public void onClick(View v) {
   //创建intent对象
   Intent intent = new Intent();
   //setclass 确定建立关联的两个activity。
   intent.setClass(IntentActivity.this, OtherActivity.class);
   //在新建的intent对象中放一个键值对
   intent.putExtra("name", "andy");
   //开启
   IntentActivity.this.startActivity(intent);
  }
     
    }

//在另一方获得
private TextView myTextView = null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.other);
  myTextView = (TextView)findViewById(R.id.myTextView);
  //在另一个activity中获得传过来的activity
  Intent intent = getIntent();
  //获得那面activity传过来的键值对
  String value = intent.getStringExtra("name");
  myTextView.setText(value);
 }

 

三、activity的常见控件
一个能计算乘法的计算器:
两个activity,一个输入乘数,另一个显示结果。


输入乘数的activity:
private EditText factorOne ;
 private EditText factorTwo;
 private TextView symbol;
 private Button calculate;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //根据控件的ID来取得代表控件的对象
        factorOne = (EditText)findViewById(R.id.factorOne);
        factorTwo = (EditText)findViewById(R.id.factorTwo);
        symbol = (TextView)findViewById(R.id.symbol);
        calculate = (Button)findViewById(R.id.calculate);
        //为symbol和calculate设置显示的值
//        symbol.setText("乘以");
//        calculate.setText("计算");
        symbol.setText(R.string.symbol);
        calculate.setText(R.string.calculate);
        //将监听器的对象绑定到按钮对象上面
        calculate.setOnClickListener(new CalculateListener());

    }
  //说明:这段代码主要功能是:单击menu按钮,会弹出一个退出 关于 的界面
      //当客户点击MENU按钮的时候,调用该方法
      @Override
   public boolean onCreateOptionsMenu(Menu menu) {
   menu.add(0, 1, 1, R.string.exit);
   menu.add(0,2,2,R.string.about);
    return super.onCreateOptionsMenu(menu);
   }
      //当客户点击菜单当中的某一个选项时,会调用该方法
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId() == 1){
     finish();
    }
    return super.onOptionsItemSelected(item);
   }
 class CalculateListener implements OnClickListener{

  @Override
  public void onClick(View v) {
   //取得两个EditText控件的值
   String factorOneStr = factorOne.getText().toString();
   String factorTwoStr = factorTwo.getText().toString();
   //将这两个值存放到Intent对象当中
   Intent intent = new Intent();
   intent.putExtra("one",factorOneStr);
   intent.putExtra("two",factorTwoStr);
   intent.setClass(Activity03.this, ResultActivity.class);
   //使用这个Intent对象来启动ResultActivity
   Activity03.this.startActivity(intent);
  }
    }
显示结果的activity:

private TextView resultView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.result);
  resultView = (TextView)findViewById(R.id.result);
  //得到Intent对象当中的值
  Intent intent = getIntent();
  String factorOneStr = intent.getStringExtra("one");
  String factorTwoStr = intent.getStringExtra("two");
  int factorOneInt = Integer.parseInt(factorOneStr);
  int factorTwoInt = Integer.parseInt(factorTwoStr);
  //计算两个值的积
  int result = factorOneInt * factorTwoInt;
  resultView.setText(result + "");
 }

控件注册:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<EditText
 android:id="@+id/factorOne"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
 />
<TextView 
 android:id="@+id/symbol"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
<EditText
 android:id="@+id/factorTwo"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
 />
<Button
 android:id="@+id/calculate"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
 />
</LinearLayout>
other.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
     android:id="@+id/result"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     />
</LinearLayout>

/values/string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Activity03!</string>
    <string name="app_name">activity03</string>
    <string name="resultLabel">result</string>
    <string name="symbol">乘以</string>
    <string name="calculate">计算</string>
    <string name="exit">退出</string>
    <string name="about">关于</string>
</resources>