在这里我们通过一个例子来演示这四个控件的使用方法
//我们要做一个两个文本框,一个Button,点击Button后跳转到另外一个Activity中,显示这两个数的计算结果
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" > 10 <EditText 11 android:id="@+id/etnum1" 12 android:layout_width="fill_parent" 13 android:layout_height="wrap_content" 14 android:inputType="number" 15 /> 16 17 <TextView 18 android:id="@+id/tvsmbole" 19 android:layout_width="wrap_content" 20 android:layout_height="wrap_content" 21 android:layout_alignLeft="@+id/etnum1" 22 android:layout_below="@+id/etnum1" 23 android:text="@string/fuhao" /> 24 25 <EditText 26 android:id="@+id/etnum2" 27 android:layout_width="fill_parent" 28 android:layout_height="wrap_content" 29 android:layout_alignLeft="@+id/tvsmbole" 30 android:layout_below="@+id/tvsmbole" 31 android:layout_marginTop="18dp" 32 android:ems="10" 33 android:inputType="number"> 34 35 <requestFocus /> 36 </EditText> 37 38 <Button 39 android:id="@+id/btngo" 40 android:layout_width="fill_parent" 41 android:layout_height="wrap_content" 42 android:layout_alignLeft="@+id/etnum2" 43 android:layout_below="@+id/etnum2" 44 android:layout_marginTop="21dp" 45 android:text="@string/btntext" /> 46 47 </RelativeLayout>
activity_result.xml文件的代码如下:
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".ResultActivity" > 10 11 <TextView 12 android:id="@+id/tvresult1" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:text="@string/tvresult" /> 16 17 </RelativeLayout>
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">Activity03</string> 5 <string name="action_settings">Settings</string> 6 <string name="fuhao">+</string> 7 <string name="btntext">go to other activity</string> 8 <string name="tvresult">jieguo Activity</string> 9 </resources>
3.界面画好以后可以看activity中的内容了
3.1首先在MainActivirty中
使用setContentView(R.layout.activity_main);将MainActivity与acitivity_main.xml关联起来
3.2声明控件
private Button btngo;
private EditText num1;
private EditText num2;
//private TextView symbole;
3.3取得界面上控件
btngo=(Button)findViewById(R.id.btngo);
num1=(EditText)findViewById(R.id.etnum1);
num2=(EditText)findViewById(R.id.etnum2);
3.4在取得控件后,我们要将两个editText中的值取出来,然后通过点击button将两个值传到ResultActivity 中。
取得值得方法是
String strnum1=num1.getText().toString();
String strnum2=num2.getText().toString();
使用Intent 对象将两个值传递过去
最后将button的监听事件给关联起来就可以了
详细代码见下:
MainAcitvity.java中的代码:
1 package com.yinyakun.activity03; 2 import android.os.Bundle; 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.view.Menu; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 import android.widget.EditText; 10 //import android.widget.TextView; 11 12 public class MainActivity extends Activity { 13 14 private Button btngo; 15 private EditText num1; 16 private EditText num2; 17 //private TextView symbole; 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_main); 22 btngo=(Button)findViewById(R.id.btngo); 23 num1=(EditText)findViewById(R.id.etnum1); 24 num2=(EditText)findViewById(R.id.etnum2); 25 btngo.setOnClickListener(new btnclickListener()); 26 } 27 28 @Override 29 public boolean onCreateOptionsMenu(Menu menu) { 30 // Inflate the menu; this adds items to the action bar if it is present. 31 getMenuInflater().inflate(R.menu.main, menu); 32 return true; 33 } 34 class btnclickListener implements OnClickListener{ 35 36 @Override 37 public void onClick(View arg0) { 38 // TODO Auto-generated method stub 39 Intent intent =new Intent(); 40 String strnum1=num1.getText().toString(); 41 String strnum2=num2.getText().toString(); 42 intent.putExtra("strnum1",strnum1); 43 intent.putExtra("strnum2",strnum2); 44 intent.setClass(MainActivity.this,ResultActivity.class); 45 MainActivity.this.startActivity(intent); 46 47 } 48 49 50 } 51 52 }
1 package com.yinyakun.activity03; 2 3 import android.os.Bundle; 4 import android.widget.TextView; 5 import android.app.Activity; 6 import android.content.Intent; 7 8 9 public class ResultActivity extends Activity { 10 11 private TextView tvresult; 12 @Override 13 protected void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_result); 16 Intent intent=getIntent(); 17 String num1=intent.getStringExtra("strnum1"); 18 String num2=intent.getStringExtra("strnum2"); 19 int result=0; 20 int inum1=Integer.parseInt(num1); 21 int inum2=Integer.parseInt(num2); 22 result=inum1+inum2; 23 tvresult=(TextView)findViewById(R.id.tvresult1); 24 tvresult.setText(result+""); 25 26 } 27 28 29 30 }
以上为本实例中的代码
注意在写Button的监听事件的时候
class btnclickListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent =new Intent(); String strnum1=num1.getText().toString(); String strnum2=num2.getText().toString(); intent.putExtra("strnum1",strnum1); intent.putExtra("strnum2",strnum2); intent.setClass(MainActivity.this,ResultActivity.class); MainActivity.this.startActivity(intent); }
然后将该监听事件通过btngo.setOnClickListener(new btnclickListener());
将该事件给该button的click事件关联起来。
在最后一定不要忘记我们在新建第二个Activity的时候要在Androidmanifest.xml文件中对第二个Acitivity进行注册
代码如下
1 <activity 2 android:name="com.yinyakun.activity03.ResultActivity" 3 android:label="result" 4 ></activity>
最后就可以运行了!
如果想在两个文本框中只能输入数字的话可以在activity_main.xml中的<EditText/>中声明一下声明语句为:android:inputtype="number"
就可以了!!
menu 菜单的使用(menu菜单的使用和上面的几个控件的使用有点不同,他只需要重写方法就行了,不用再添加什么东东)
我们直接重写一个方法://方法的作用是当用户点击munu按钮的时候调用的方法,
onCreateOptionsMenu(Menu menu)
{
}
在这里面我们只要添加按钮的选项通过语句:
munu.add(0,1,1,R.stings.about);
在这个方法中0表示的是菜单所属组的id,第二个参数是当前的菜单的id,第三个参数是排序,第四个参数是显示的内容
1 @Override 2 public boolean onCreateOptionsMenu(Menu menu) { 3 // Inflate the menu; this adds items to the action bar if it is present. 4 menu.add(0,1,1,R.string.exit); 5 menu.add(0,2,2,R.string.about); 6 getMenuInflater().inflate(R.menu.main, menu); 7 return true; 8 } 9 10 @Override 11 public boolean onOptionsItemSelected(MenuItem item) { 12 // TODO Auto-generated method stub 13 if (item.getItemId()==1) 14 { 15 finish(); 16 17 } 18 return super.onOptionsItemSelected(item); 19 }