• 【Android基础】Activity之间进行参数传递的三种方式


    1.使用Intent进行传输

    	//发送数据的Activity
    	class button implements OnClickListener{
    		@Override
    		public void onClick(View v) {
    			// TODO Auto-generated method stub
    			String ET_1String = ET_1.getText().toString();			//得到文本输入框中的文本
    			String ET_2String = ET_2.getText().toString();
    			Intent intent = new Intent();
    			intent.putExtra("one",ET_1String);						//进行参数的传递(“参数名字”,参数)
    			intent.putExtra("two",ET_2String);
    			intent.setClass(MainActivity.this, result.class);
    			MainActivity.this.startActivity(intent);
    		}
    	}
    
    	//接收数据的Activity
       public class result extends Activity{
    	private TextView resulTextView;							
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    			super.onCreate(savedInstanceState);
    			setContentView(R.layout.result);
    			resulTextView = (TextView)findViewById(R.id.TV_1);
    			Intent intent = getIntent();						//定义接收数据的Intent
    			String oneString = intent.getStringExtra("one");
    			String twoString = intent.getStringExtra("two");
    			int a = Integer.parseInt(oneString);				//进行计算之前要进行强制类型转换
    			int b = Integer.parseInt(twoString);
    			int c = a * b;
    			resulTextView.setText(c + "");						//要加一个空字符对int类型进行强制类型转换
    		}
    	}

    2.使用静态变量进行传递

    1.主界面(发送数据的Activity)
    
    class ButtonListener implements android.view.View.OnClickListener{
    		@Override
    		public void onClick(View arg0) {
    			// TODO Auto-generated method stub
    			Intent intent = new Intent();
    			intent.setClass(MainActivity.this, OtherActivity.class);
    			OtherActivity.nameString = "zhao";
    			startActivity(intent);
    		}
    	}
    	
    2.接受数据Activity
    	
    	public class OtherActivity extends Activity{
    	//定义静态变量
    	public static String nameString;
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.otheractivity);
    		System.out.println("nameString-------->"+nameString);
    	}
    }

    3.利用setResult进行数据传输

    	//1.要关闭的页面
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.otheractivity);
    		Intent intent = this.getIntent();
    		intent.putExtra("tel", 12345);
    		//设置requestCode和带有数据的intent对象
    		OtherActivity.this.setResult(3, intent);
    		//马上关闭Activity
    		this.finish();
    	}
    	
    	//2.上面的页面关闭时,此页面进行数据的接收
    	class ButtonListener implements android.view.View.OnClickListener{
    		@Override
    		public void onClick(View arg0) {
    			Intent intent = new Intent();
    			intent.setClass(MainActivity.this, OtherActivity.class);
    			//与普通的start方法不同,需要设置requestCode
    			startActivityForResult(intent, 1);
    		}
    	}
    	
    	//如果要进行此操作,需要在数据接收页面中复写activity的onActivityResul()方法
    	@Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		super.onActivityResult(requestCode, resultCode, data);
    		int tel = 0;
    		//根据返回码resultCode来判断下一步进行的业务代码
    		if(resultCode==3){
    			tel = data.getIntExtra("tel", 0);
    		}
    		Log.i(TAG, "tel--------->"+String.valueOf(tel));
    	}



  • 相关阅读:
    Cable master--hdu1551(二分法)
    Pie--hdu1969(二分法)
    Ice_cream's world I--hdu2120
    How Many Tables--hdu1213(并查集)
    畅通工程--hdu1232(并查集)
    小希的迷宫--hdu1272(并查集)
    More is better--hdu1856(并查集)
    Windows Message Queue--hdu1509
    期末考试--nyoj-757
    网络开发之使用Web Service和使用WCF服务
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3749573.html
Copyright © 2020-2023  润新知