源码下载↓↓↓
今天搞了一天,跟着视频学会了Activity界面切换和参数回传。直接动手做的时候,还是问题多多,不是配置流程忘了,就是什么控件类型写错了,害的我花了很长时间解决。
开发流程梳理:
1.对界面进行布局(在layout目录下配置每个Activity对应的xml)
2.书写Activity类,获取控件、添加时间(新增Activity后,切记到配置Activity文件中去注册)
Activity返回参数和传值区别:传参调用startActivity(intent)执行跳转,返回参数用startActivityForResult(intent, 1)方法,还需从写onActivityResult()方法,它是负责初始化回传参数的方法。
直接上主要代码:
package com.example.android_intent_forresult;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.os.Build;
public class MainActivity extends Activity {
final int REQUESTCODE = 1;
Button button;
EditText a,b,result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//加载布局文件
a = (EditText)findViewById(R.id.a); //获取输入框控件
b = (EditText)findViewById(R.id.b);//获取输入框控件
button = (Button)findViewById(R.id.button); //获取按钮控件
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//实例化Intent对象
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
//传人参数
intent.putExtra("a", Integer.parseInt(a.getText().toString()));
intent.putExtra("b", Integer.parseInt(b.getText().toString()));
//跳转页面,有返回参数
startActivityForResult(intent, REQUESTCODE);//REQUESTCODE 定义请求参数
}
});
}
/**
* 参数返回后,初始化方法
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
//resultCode由返回页面定义
if(resultCode == 2){
if(requestCode == REQUESTCODE){
//得到要初始化组件、并初始化
result = (EditText)findViewById(R.id.c);
result.setText(String.valueOf(data.getIntExtra("sum", 0)));
}
}
}
}
package com.example.android_intent_forresult;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.os.Build;
public class OtherActivity extends Activity {
Button button;
TextView textView;
EditText result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other_main);
textView = (TextView)findViewById(R.id.str);
result = (EditText)findViewById(R.id.sum);
button = (Button)findViewById(R.id.button);
Intent intent = getIntent();//得到Intent对象,取出上级页面传人参数
textView.setText(intent.getIntExtra("a", 0)+" + "+intent.getIntExtra("b", 0)+" = ?");
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();//构造Intent对象,传参
intent.putExtra("sum", Integer.parseInt(result.getText().toString()));
//通过Intent对象返回结果
setResult(2,intent);
//结束当前Activity生命周期
finish();
}
});
}
}
点击下载源码