您的位置:首页 > 移动开发 > Android开发

android基础--为应用添加新的Activity与参数传递

2011-10-18 17:36 465 查看
Main.xml

<LinearLayout
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:id="@+id/button"
/>
</LinearLayout>
Other.xml

<LinearLayout
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/content"
android:id="@+id/resultView"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/closeButton"
android:id="@+id/closeButton"/>
</LinearLayout>
MainActivity.java

public class MainActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button button = (Button)this.findViewById(R.id.button);

button.setOnClickListener(new ButtonClickListener());

}

/**

* onActivityResult方法由系统调用,可以得到OtherActivity关闭时返回的参数

*/

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

String result = data.getStringExtra("result");

Toast.makeText(getApplicationContext(), result, 1).show();

super.onActivityResult(requestCode, resultCode, data);

}

private final class ButtonClickListener implements View.OnClickListener{

public void onClick(View v) {//打开新的Activity

Intent intent = new Intent();

intent.setClass(getApplicationContext(), OtherActivity.class);//明确指定了所要激活的组件(显示意图)

/**第一种传递参数的方法

* intent.putExtra("name", "李四");//往意图对象中传参数

* intent.putExtra("age", 22);

*/

//另外一种传递参数的方法

Bundle bundle = new Bundle();

bundle.putString("name", "张三");

bundle.putInt("age", 20);

intent.putExtras(bundle);

//通过才可以取得关闭OtherActivity时返回的结果数据

startActivityForResult(intent, 22);//第二个参数标识在哪个地方调用该方法

//startActivity(intent);//激活

}

}

}

OtherActivity.java

public class OtherActivity extends Activity {
/**
* onCreate方法由系统自动调用,
* 在activity整个声明周期中只会被调用一次,
* 适合在这个方法中完成数据的初始化,
* 包括窗口刚开始要完成的界面
*/
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);//设置在activity代表的窗口上显示other.xml界面
Intent intent = getIntent();//获取激活本Activity的意图
/**获取参数的方法
*String name = intent.getStringExtra("name");//获取意图传过来的参数
*int age = intent.getIntExtra("age", 0);//0:如果age参数不存在,则默认为0
*/
//另外一种获取参数的方法
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
int age = bundle.getInt("age");
//找到组件
TextView textView = (TextView) this.findViewById(R.id.resultView);
//把参数内容放入组件
textView.setText("名称:"+name+", 年龄: "+age);

//找到关闭按钮
Button button = (Button) this.findViewById(R.id.closeButton);
//为按钮设置点击事件
button.setOnClickListener(new ButtonClickListener());
}
private final class ButtonClickListener
implements
View.OnClickListener{
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("result", "这是结果数据");
//为该Activity设置返回对象
setResult(100, intent);
finish();//关闭Activity,将参数返回给MainActivity
}
}
}

<!-- 在清单中完成OtherActivity的配置
android:label="@string/title指定组件窗口的标题
-->
<activity android:name=".OtherActivity" android:label="@string/title">
</activity>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐