Activity初级:resultCode返回码、 onclick代码重构
2013-05-12 19:38
375 查看
主页:
第二页
第二页按钮事件重构过程一:
1.实现OnClickListener接口
2.重写onClick(View v)
3.findViewById(R.id.button1).setOnClickListener(this)
第二页按钮事件重构过程二:将事件内容以方法代替
public class MainActivity extends Activity { /** * 主页点击按钮跳转到第二页 * 第二页点击按钮1将字符串内容显示到主页,点击按钮2将数字内容显示到主页 */ private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); TextView textView = (TextView) findViewById(R.id.textView1_main); String text = null; switch (resultCode)//判断返回码 { case RESULT_CODE_ONE: text = "from按钮1:" + data.getStringExtra("btnone"); break; case RESULT_CODE_TWO: int age = data.getIntExtra("btntwo", 0);//0为默认值,当data没有接收到返回的int时,返回这个默认值 text ="from按钮2:"+ String.valueOf(age); break; default: break; } textView.setText(text); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button1_main).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent , 0); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
第二页
public class SecondActivity extends Activity { private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); final Intent data = new Intent(); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { data.putExtra("btnone", "name"); setResult(RESULT_CODE_ONE, data );//设置返回码 finish(); } }); findViewById(R.id.button2).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { data.putExtra("btntwo", 12); setResult(RESULT_CODE_TWO, data );//设置返回码 finish(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.second, menu); return true; } }
第二页按钮事件重构过程一:
1.实现OnClickListener接口
2.重写onClick(View v)
3.findViewById(R.id.button1).setOnClickListener(this)
public class SecondActivity extends Activity implements OnClickListener//实现监听者接口 { private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override public void onClick(View v)//重写点击方法 { Intent data = new Intent(); if(v.getId() == R.id.button1)//判断view的id { data.putExtra("btnone", "name"); setResult(RESULT_CODE_ONE, data ); finish(); } if(v.getId() == R.id.button2) { data.putExtra("btntwo", 12); setResult(RESULT_CODE_TWO, data ); finish(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); findViewById(R.id.button1).setOnClickListener(this);//监听按钮 findViewById(R.id.button2).setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.second, menu); return true; } }
第二页按钮事件重构过程二:将事件内容以方法代替
public class SecondActivity extends Activity implements OnClickListener//实现监听者接口 { private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override public void onClick(View v)//重写点击方法 { Intent data = new Intent(); if(v.getId() == R.id.button1)//判断view的id { // data.putExtra("btnone", "name"); // setResult(RESULT_CODE_ONE, data ); // finish(); sendResult("btnone", "name", RESULT_CODE_ONE); } if(v.getId() == R.id.button2) { // data.putExtra("btntwo", 12); // setResult(RESULT_CODE_TWO, data ); // finish(); sendResult("btntwo", Integer.valueOf(12), RESULT_CODE_TWO); } } private void sendResult(String extraKey, Object content, int resultCode) { Intent data = new Intent(); if (content instanceof String) { data.putExtra(extraKey, (String) content); } else if (content instanceof Integer) { data.putExtra(extraKey, (Integer) content); } setResult(resultCode, data); finish(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); findViewById(R.id.button1).setOnClickListener(this);//监听按钮 findViewById(R.id.button2).setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.second, menu); return true; } }
相关文章推荐
- startActivityForResult ,无法接收到返回的resultCode的原因
- 手机拍照onActivityResult返回的resultCode == 0
- Android onActivityResult 设置requestCode 返回的code不对
- 在Fragment使用startActivityForResult()方法返回的resultCode不正确
- startActivityForResult请求的REQUEST_CODE和返回的REQUEST_CODE不一致问题
- Android onActivityResult不返回resultCode和intent
- 解决onActivityResult()返回resultCode总是0的问题
- Android开发 Fragment中调用startActivityForResult返回错误的requestCode
- startActivityForResult requestCode 和 resultCode傻傻分不清
- 调用startactivityforresult后,onactivityresult立刻返回RESULT_CANCELED
- startActivityForResult 方法 返回数据到前一个 Activity
- Activity初级:startActivityForResult、重写onActivityResult、setResult回传数据、requestCode请求码
- Android学习之使用startActivityForResult()和onActivityResult()进行跳转并返回数据
- startActivityForResult()未正确返回执行结果
- Activity的onActivityResult 接收不到返回结果的解决办法
- StartActivityForResult刚跳转就接收到取消的返回值
- 关于startActivityForResult跳转页面返回时onActivityResult回调无法执行的问题
- 接收Activity返回的结果startActivityForResult
- onActivityResult 取消或返回按钮无效
- Android基础之——startActivityForResult启动界面并返回数据,上传头像