目录
1:MainActivity
2:DisplayMessageActivity
摘要
两个Activity临时对象传值
内容
1:MainActivity
1 package com.dream.myapplication; 2 3 import android.content.Intent; 4 import android.os.Bundle; 5 import android.support.design.widget.FloatingActionButton; 6 import android.support.design.widget.Snackbar; 7 import android.support.v7.app.AppCompatActivity; 8 import android.support.v7.widget.Toolbar; 9 import android.view.View; 10 import android.view.Menu; 11 import android.view.MenuItem; 12 import android.widget.EditText; 13 14 public class MainActivity extends AppCompatActivity { 15 16 //创建临时对象 17 public static final String EXTRA_MESSAGE ="com.dream.My Application.MESSAGE" ; 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_main); 23 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 24 setSupportActionBar(toolbar); 25 26 FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 27 fab.setOnClickListener(new View.OnClickListener() { 28 @Override 29 public void onClick(View view) { 30 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 31 .setAction("Action", null).show(); 32 } 33 }); 34 } 35 36 @Override 37 public boolean onCreateOptionsMenu(Menu menu) { 38 // Inflate the menu; this adds items to the action bar if it is present. 39 getMenuInflater().inflate(R.menu.menu_main, menu); 40 return true; 41 } 42 43 @Override 44 public boolean onOptionsItemSelected(MenuItem item) { 45 // Handle action bar item clicks here. The action bar will 46 // automatically handle clicks on the Home/Up button, so long 47 // as you specify a parent activity in AndroidManifest.xml. 48 int id = item.getItemId(); 49 50 //noinspection SimplifiableIfStatement 51 if (id == R.id.action_settings) { 52 return true; 53 } 54 55 return super.onOptionsItemSelected(item); 56 } 57 58 59 60 /** Called when the user clicks the Send button */ 61 62 //在MainActivity中写入一个方法,通过content.xml中的button.onclick事件触发 63 public void sendMessage(View view) { 64 // Do something in response to button 65 //调用了一个intent 66 Intent intent = new Intent(this, DisplayMessageActivity.class); 67 //引用editText对象 68 EditText editText = (EditText) findViewById(R.id.edit_message); 69 //获取editText属性 70 String message = editText.getText().toString(); 71 //传值存入 72 intent.putExtra(EXTRA_MESSAGE, message); 73 //开始intent 74 startActivity(intent); 75 } 76 77 }
2:DisplayMessageActivity
package com.dream.myapplication; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; public class DisplayMessageActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); //创建intent,用getItent方法获取上一个Intent的属性 Intent intent = getIntent(); //创建message对象,intent.getStringExtra方法获取MainActivity.extra_message属性 String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); //创建 textView,并设置属性 TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); //调用relativelayout的addView方法在视图中呈现textView RelativeLayout layout = (RelativeLayout) findViewById(R.id.content); layout.addView(textView); } }
花絮
Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.edit_message); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message);
解释如下:
转载地址:http://my.eoe.cn/xiangliang/archive/382.html
在Intent的构造函数中有两个参数:第一个参数是Context(上下文)一个是系统所需要传递的class对象。
而一个intent不仅允许你启动到另一个Activity,同时也可以传递数据包到另一个Activity里。
Sending an intent to other apps-发送intent(意图)到其他app(应用)
Intent(意图)可以传递各种各样的以键值对形式出现的集合,可以称它为extras,putExtra()方法用字符窜作为它的key,第二个参数作为它的值。为了在下一个Activity中获取extra(附加的)数据,你应该定义一个公共常量作为key(键),ok,在MyFirstActivity类的顶部定义一个名为EXTRA_MESSAGE的常量:
public class MyFirstActivity
extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myapp.MESSAGE";
...
}
将intent的extra用应用的包名作为前缀是一个很好的做法,可以保证在与其他APP交流时,这个extra是独一无二的。