Android学习笔记3——四种常用控件

便于国际化考虑,TextView Button 等上面的标签不要再代码里写死,而应在资源文件中配置 (string.xml)

<string name="operator">乘以</string> <string name="btn_name">计算</string

然后再在代码中设置:

operator.setText(R.string.operator); calculate.setText(R.string.btn_name);

可以在 res下的 string 目录下存放各种不同语言版本的 string.xml 文件

 

关于内部类:

内部类可以使用外部类的成员变量和成员函数

也可以调用外部类的对象

 

Menu:按手机键盘上的 Menu 按钮调出应用程序的菜单,实现这个需要重写一个回调函数:

onCreateOptionsMenu(Menu menu)

然后直接操纵作为参数传递进来的 menu

添加菜单:

menu.add(int groupId, int itemId, int order, CharSequence title)

其中:groupId 表示菜单所在菜单组的 id

menuId表示当前菜单本身的 id

order表示排序是的编号,

title表示菜单上显示的内容

 

为菜单项添加事件:重写另一个回调函数:

onOptionsItemSelected(MenuItem item)

判断是哪个菜单项:item.getItemId() ,返回 itemId 然后比较。

 

示例代码:

一个乘法计算器:在一个Activity03中输入乘数与被乘数,点击按钮转到另一个叫Result的Activity中显示结果。同时在Activity03中添加一个菜单实现退出程序的功能。

实现效果图:

Android学习笔记3——四种常用控件_第1张图片      Android学习笔记3——四种常用控件_第2张图片

两个Activity的代码: s 

Activity03.java

package me.bym; 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 Activity03 extends Activity { /* * 声明该Activity上的控件。 */ private EditText factor1 = null; private EditText factor2 = null; private TextView operator = null; private Button calculate = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 设置布局。 /* * 获取各个控件。 */ factor1 = (EditText) findViewById(R.id.factor1); factor2 = (EditText) findViewById(R.id.factor2); operator = (TextView) findViewById(R.id.operator); calculate = (Button) findViewById(R.id.calculate); /* * 为TextView和Button设置内容,内容保存在string.xml文件中。 */ operator.setText(R.string.operator); calculate.setText(R.string.btn_name); calculate.setOnClickListener(new CalculateListener()); // 为按钮添加事件监听器。 } @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) { int itemId = item.getItemId(); // 获取点击的菜单项的itemId,然后判断是哪个菜单项被点击。 switch (itemId) { case 1: finish(); break; default: break; } return super.onOptionsItemSelected(item); } class CalculateListener implements OnClickListener { @Override public void onClick(View v) { /* * 获取两个编辑框中的内容。 */ String strFactor1 = factor1.getText().toString(); String strFactor2 = factor2.getText().toString(); /* * 创建Intent的对象,并将两个编辑框中的内容分别放入intent中。 */ Intent intent = new Intent(); intent.putExtra("one", strFactor1); intent.putExtra("two", strFactor2); intent.setClass(Activity03.this, Result.class); // 设置intent的源和目标。 Activity03.this.startActivity(intent); // 启动。 } } }

 

Result.java

package me.bym; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; public class Result extends Activity { private TextView resultView = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.result); Intent intent = getIntent(); // 获取intent。 resultView = (TextView) findViewById(R.id.result); // 获取用以显示结果的TextView。 /* * 从intent中取出前面一个Activity传过来的两个数。 * 转为整型然后相乘并输出在TextView上。 */ String strFactor1 = intent.getStringExtra("one"); String strFactor2 = intent.getStringExtra("two"); int factor1 = Integer.parseInt(strFactor1); int factor2 = Integer.parseInt(strFactor2); int res = factor1 * factor2; resultView.setText(res + ""); } }

你可能感兴趣的:(android,String,null,Class,button,menu)