在一个简单的例子中添加菜单, 然后执行操作。
例子: 第一个页面实现输入两个变量, 然后相乘, 第二个页面通过接收数据来显示计算结果。
第一个activity:
package com.joe;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Kong_jianActivity extends Activity {
/**
* 1. 在activity当中, 要声明四个控件
* 2. 为其中的两个控件设置显示的值
* 3. 创建一个监听器, 监听按钮按下的动作
* 4. 将监听器的对象绑定到按钮对象上
*/
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("乘以") ;
symbol.setText(R.string.smybol) ;
calculate.setText(R.string.calculate) ;
//将 监听器的对象绑定到按钮对象上
calculate.setOnClickListener(new CalculateListener()) ;
}
//添加menu菜单
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, 1, 1, R.string.exit) ;
menu.add(0, 2, 2, R.string.about) ;
return super.onCreateOptionsMenu(menu);
}
//当点击menu选项所执行的操作
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
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(Kong_jianActivity.this, ResultActivity.class) ;
Kong_jianActivity.this.startActivity(intent) ;
}
}
}
第二个acti:
package com.joe;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
/**
* 1. 接收传送的数值
* 2. 计算两个值的积
* 3. 将计算的结果显示在当前的activity
*/
public class ResultActivity extends 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 + "") ; //此处添加空字符后 会自动吧result转换为字符型
}
}