Android中Intent的注意事项


写了一个东西,用了两个Activity,开始无论如何都不能从一个跳转到另一个,检查了Androidmanifest,等等都查不出问题。

后来发现时在使用intent传输对象的时候,类名写错了。在内部类里把本类传到了另一个子虚乌有的什么类中。找的我晕头转向,以此希望不要以后再犯错误

同时也写几点今天的心得。

1,多Activity通常每一个Activity都要有一个layout文件,在setContentView的时候要注意设定成对应的layout文件

2,很多个Activity都写完了之后一定不要忘了在AndroidManifest中添加注册

3,用intent对象传输信息的时候一定要注意类名的对应。不然肯定不能成功调用Activity

4,最后不要忘了从本类中启动其他Activity


另外 所有代码开源 

注:本人是看mars的视频学习的,如有版权相关问题请谅解

Activity03Activity.java

  1. package com.wzy.activity03;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.database.CursorJoiner.Result;  
  6. import android.os.Bundle;  
  7. import android.view.View;  
  8. import android.view.View.OnClickListener;  
  9. import android.widget.Button;  
  10. import android.widget.EditText;  
  11. import android.widget.TextView;  
  12.   
  13. /* 
  14.  * 1,在activity 03中要声明四个控件, 
  15.  * 2,要为其中的两个控件设置显示的值 
  16.  * 3,创建一个监听器类,监听按钮按下的动作 
  17.  * 4,将监听器类的对象绑定在按钮对象上 
  18.  */  
  19. public class Activity03Activity extends Activity {  
  20.     /** Called when the activity is first created. */  
  21.   
  22.     private EditText factorOne;  
  23.     private EditText factorTwo;  
  24.     private TextView symbol;  
  25.     private Button calculate;  
  26.   
  27.     @Override  
  28.     public void onCreate(Bundle savedInstanceState) {  
  29.         super.onCreate(savedInstanceState);  
  30.         setContentView(R.layout.main);  
  31.   
  32.         factorOne = (EditText) findViewById(R.id.factorOne);  
  33.         factorTwo = (EditText) findViewById(R.id.factorTwo);  
  34.         symbol = (TextView) findViewById(R.id.tv1);  
  35.         calculate = (Button) findViewById(R.id.calculate);  
  36.   
  37.         // 添加监听   
  38.         calculate.setOnClickListener(new CalListener());  
  39.   
  40.     }  
  41.   
  42.     class CalListener implements OnClickListener {  
  43.   
  44.         @Override  
  45.         public void onClick(View v) {  
  46.             // 取得空间的值——存入到intent对象中——使用intent来启动resultActivity   
  47.             String fOne = factorOne.getText().toString();  
  48.             String fTwo = factorTwo.getText().toString();  
  49.   
  50.             Intent intent = new Intent();  
  51.   
  52.             intent.putExtra("one", fOne);  
  53.             intent.putExtra("two", fTwo);  
  54.   
  55.             intent.setClass(Activity03Activity.this, ResultActivity.class);  
  56.             // 这里一定要注意对象传递的方式,从第一个Activity到第二个Activity   
  57.   
  58.             Activity03Activity.this.startActivity(intent);  
  59.   
  60.         }  
  61.   
  62.     }  
  63. }  
ResultActivity.java
  1. package com.wzy.activity03;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.widget.TextView;  
  7. import android.widget.Toast;  
  8. /* 
  9.  * 1,接收数值 
  10.  * 2,计算 
  11.  * 3,输出到TextView上 
  12.  */  
  13. public class ResultActivity extends Activity{  
  14.       
  15.     private TextView ResultView;   
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         // TODO Auto-generated method stub   
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.result);  
  21.         Toast.makeText(ResultActivity.this"ResultActivity"3);  
  22.           
  23.         ResultView =(TextView)findViewById(R.id.result);  
  24.           
  25.         //得到intent的值   
  26.         Intent intent=getIntent();  
  27.           
  28.         String f1=intent.getStringExtra("one");  
  29.         String f2=intent.getStringExtra("two");  
  30.         //计算结果   
  31.         int result=Integer.parseInt(f1)*Integer.parseInt(f2);  
  32.           
  33.         ResultView.setText(result +"");  
  34.           
  35.           
  36.           
  37.     }  
  38. }  
main.xml
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     <EditText   
  8.         android:id="@+id/factorOne"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:hint="输入第一个乘数"  
  12.     />  
  13.     <TextView   
  14.         android:id="@+id/tv1"  
  15.         android:layout_width="fill_parent"  
  16.         android:layout_height="wrap_content"  
  17.         android:text="乘以"  
  18.     />  
  19.     <EditText   
  20.         android:id="@+id/factorTwo"  
  21.         android:layout_width="fill_parent"  
  22.         android:layout_height="wrap_content"  
  23.         android:hint="输入第二个乘数"  
  24.     />  
  25.     <Button   
  26.         android:id="@+id/calculate"  
  27.         android:layout_width="fill_parent"  
  28.         android:layout_height="wrap_content"  
  29.         android:text="计算"  
  30.     />  
  31.   
  32.       
  33. </LinearLayout>  
result.xml
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     <EditText   
  8.         android:id="@+id/factorOne"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:hint="输入第一个乘数"  
  12.     />  
  13.     <TextView   
  14.         android:id="@+id/tv1"  
  15.         android:layout_width="fill_parent"  
  16.         android:layout_height="wrap_content"  
  17.         android:text="乘以"  
  18.     />  
  19.     <EditText   
  20.         android:id="@+id/factorTwo"  
  21.         android:layout_width="fill_parent"  
  22.         android:layout_height="wrap_content"  
  23.         android:hint="输入第二个乘数"  
  24.     />  
  25.     <Button   
  26.         android:id="@+id/calculate"  
  27.         android:layout_width="fill_parent"  
  28.         android:layout_height="wrap_content"  
  29.         android:text="计算"  
  30.     />  
  31.   
  32.       
  33. </LinearLayout>  

相关内容