activity_send_args
来源:互联网 发布:乐器调音软件 编辑:程序博客网 时间:2024/06/13 05:02
简单的传递一个字符串
创建一个project android minsdk 4.0 blankActivity
mainxml中添加一个button @+id/btnStartAty
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动另一个avtivity" android:id="@+id/btnStartAty" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" />`
在java中new 一个Acvtivity “TheAty “
<TextView android:text="hello" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv"/>
在mainActivity.java中 oncreat()方法添加
findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,TheAty.class); i.putExtra("data","cby"); startActivity(i); } });
在TheAty.java的 onCreate添加
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_the_aty); Intent i =getIntent(); tv = (TextView)findViewById(R.id.tv); tv.setText(i.getStringExtra("data"));
在TheAty.java的 onCreate添加
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_the_aty); Intent i =getIntent(); tv = (TextView)findViewById(R.id.tv); tv.setText(i.getStringExtra("data"));
传递Bundle数据包
####在mainActivity中OnCreate下添加以下code
findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,TheAty.class); Bundle b = new Bundle(); b.putString("name","cby"); b.putInt("age",2); i.putExtras(b); startActivity(i); } });
在TheAty添加code以显示Bundle数据
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_the_aty); Intent i =getIntent(); Bundle data = i.getExtras(); tv = (TextView)findViewById(R.id.tv); tv.setText(String.format("name=%s,age=%d",data.getString("name"),data.getInt("age")));
传递值对象 ##
1.在java下新建一个User类 可以分别用 Serializable(简单)和Parcelable实现
//public class User implements Serializable { public class User implements Parcelable { private String name ; private int age; public User(String name,int age){ this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(getName()); dest.writeInt(getAge()); } public static final Creator<User> CREATOR = new Creator<User>() { @Override public User createFromParcel(Parcel source) { return new User(source.readString(),source.readInt()); } @Override public User[] newArray(int size) { return new User[size]; } }; }
2.TheAty.java中加入
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_the_aty); tv = (TextView)findViewById(R.id.tv); Intent i =getIntent();// Bundle data = i.getExtras();// tv = (TextView)findViewById(R.id.tv);//// tv.setText(i.getStringExtra("data"));// tv.setText(String.format("name=%s,age=%d",data.getString("name"),data.getInt("age")));// User user = (User) i.getSerializableExtra("user"); User user = i.getParcelableExtra("user"); tv.setText(String.format("User info(name=%s,age=%d)",user.getName(),user.getAge()));
获取被启动的Ativity 的返回参数
1.首先在content_theAty.xml中添加一个button和输入的EditText
注:RelativeLayout改成vertical 的LinearLayout### <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText" android:layout_gravity="center_horizontal" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="SendBack" android:id="@+id/button" android:layout_gravity="center_horizontal" />
2、在content_main.xml中加入一个textView接受返回的信息
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动另一个avtivity" android:id="@+id/btnStartAty" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="new text"android:id="@+id/textView"/> </LinearLayout>
3.在TheAty.java中添加
private TextView tv; private EditText editText; editText=(EditText)findViewById(R.id.editText);findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(); i.putExtra("data",editText.getText().toString()); setResult(1, i); finish(); } });
4.add code in MainActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView =(TextView) findViewById(R.id.textView); findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,TheAty.class);//// i.putExtra("data","cby");// Bundle b = new Bundle();// b.putString("name","cby");// b.putInt("age",2);// i.putExtras(b); i.putExtra("user",new User("cby",2));// startActivity(i); startActivityForResult(i,0); } }); 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(); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); textView.setText("另一个Activity返回的数据是"+data.getStringExtra("data")); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
0 0
- activity_send_args
- xml接口类型的数据(把其中的数据显示出来)
- 奋斗吧,程序员——第八章 衣带渐宽终不悔,为伊消得人憔悴
- Linux的文件系统结构
- UITabbar技巧收集
- spring初始化Bean的方法---实现 InitializingBean接口
- activity_send_args
- 系统调用 write
- 奋斗吧,程序员——第九章 金风玉露一相逢,便胜却,人间无数
- C语言基础函数 两个变量判断最大值,简明格式
- Bootstrap中data-target 到底是什么
- 定义一个函数 整型参数;利用参数输出一加到100;(初学者)
- 为什么基类的析构函数是虚函数?
- 11、数据导出与导入
- 聊聊产品经理那点事