Mars老师Android视频教程06讲,常见控件的学习
1、 新建一个Android项目
2、 在布局文件中依次添加EditText、TextView、EditText、Button,一定要按照界面上控件显示的顺序在布局文件中添加
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/factor1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="" />
<TextView
android:id="@+id/symbol"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/factor2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="" />
<Button
android:id="@+id/calculate"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
3、 再新建一个布局文件用来显示计算的结果,在这个布局文件中添加一个LinearLayout和一个TextView默认的布局文件中默认就有一个LinearLayout,所以不需要手动添加新建的布局文件默认为空,所以需要手动添加,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/result"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
4、 编写第一个Activity
a) 让Activity继承android的Activity
b) 重写Activity的onCreate()方法
c) 设置这个Activity的布局文件
d) 根据控件id获得控件对象
e) 设置控件的值这个值引用的是string.xml中的值所以还需要在string.xml文件中设置最好是使用string.xml中的值以便实现国际化这个在布局文件中也能设置
<resources>
<string name="app_name">Activity03</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_activity03">Activity03</string>
<string name="title_activity_result">result</string>
<string name="symbol">乘以</string>
<string name="calculate">计算</string>
<string name="factor1hint">乘数一</string>
<string name="factor2hint">乘数二</string>
<string name="exit">退出</string>
<string name="about">关于</string>
</resources>
package fengda.activity03;
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 {
private EditText factor1 = null;
private TextView symbol = null;
private EditText factor2 = null;
private Button calculate = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity03);
factor1 = (EditText) findViewById(R.id.factor1);
factor1.setHint(R.string.factor1hint);
factor2 = (EditText) findViewById(R.id.factor2);
factor2.setHint(R.string.factor2hint);
symbol = (TextView) findViewById(R.id.symbol);
symbol.setText(R.string.symbol);
calculate = (Button) findViewById(R.id.calculate);
calculate.setText(R.string.calculate);
calculate.setOnClickListener( new CalculateListener());
}
class CalculateListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
factor1 = (EditText) findViewById(R.id.factor1);
factor2 = (EditText) findViewById(R.id.factor2);
intent.putExtra("factor1", factor1.getText().toString());
intent.putExtra("factor2", factor2.getText().toString());
intent.setClass(Activity03.this, Result.class);
Activity03.this.startActivity(intent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, R.string.exit);
menu.add(0, 2, 2, R.string.about);
//getMenuInflater().inflate(R.menu.activity_activity03, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==1){
finish();
}
// TODO Auto-generated method stub
return super.onOptionsItemSelected(item);
}
}
5、 新建一个Activity——ResultActivity
a) 让Activity继承android的Activity
b) 重写Activity的onCreate()方法
c) 设置这个Activity的布局文件
d) 根据控件id获得控件对象
package fengda.activity03;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Result extends Activity {
private TextView result = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Intent intent = getIntent();
result = (TextView) findViewById(R.id.result);
int factor1 = Integer.parseInt( intent.getStringExtra("factor1") );
int factor2 = Integer.parseInt( intent.getStringExtra("factor2") );
int r = factor1 * factor2;
result.setText("结果:" + r);
}
}
6、 在第一个Activity中编写Button的监听器
a) 取得两个EditText控件的值
b) 创建Intent对象
c) 将这两个值存放到Intent对象当中
d) 使用Intent对象启用ResultActivity
e) 将监听器与Button绑定
7、 在第二个ActivityResultActivity中获得Intent对象
a) 获得Intent对象中保存的值并强制转换成int类型
b) 计算两个值的积
c) 设置控件值
8、 在第一个Activity中重写onCreateOptionsMenu()方法这个方法是用于添加菜单中的菜单项我们添加两个菜单项 9
、 再在第一个Activity中重写onOptionsItemSelected()方法这个方法是当点击菜单中菜单项时调用。判断当点击退出的时候调用finish()方法
最后的运行结果: