andriod的简单用法2
1、在Activity中使用menu
//创建菜单项
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.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(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
2、销毁活动,即从堆栈中去掉该Activity,并不一定是退出应用。
finish();
3、活动被回收了怎么办
当Activity处于停止状态即:onstop状态时有可能被系统回收。当用户back到该Activity的时候不执行onRestart,而是执行onCreate方法。 而该Activity有可能有一些中间状态或者数据就会丢失了。解决办法:
复写:onSaveInstanceState(Bundle outState)回调方法。该方法会在Activity被回收之前调用。
将需要保存的数据放到Bundle中。
当这个页面再次被打开时执行onCreate方法,其中的参数Bundle中就会有值(其他情况下一般是null)。如果不是null,就可以把Bundle中保存到额数据恢复回来。
4、去掉标题栏
使用:requestWindowFeature(Window.FEATURE_NO_TITLE);
见很多书上和网上问答,这个方法调用的时机是:
protected void onCreate(Bundle savedInstanceBundle) { super.onCreate(savedInstanceBundle); requestWindowFeature(Window.FEATURE_NO_TITLE); //requestWindowFeature要位于setContentView之前,否则会报:requestFeature() must be called before adding content 异常 setContentView(layout.login); }
但是我按照这样的写法写了之后还是报这个异常,查询了好久,可能跟继承的父类相关吧,上边的写法应该是继承父类Acivity,而我这要兼容低办法,继承ActionBarActivity类。
改成如下写法运行成功。将requestWindowFeature方法放到super.OnCreate之前运行成功
protected void onCreate(Bundle savedInstanceBundle) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceBundle); setContentView(layout.login); }
//该问题没有解决,虽然上述办法不报错,但是标题栏还在显示 再查资料吧 http://stackoverflow.com/questions/16939814/android-util-androidruntimeexception-requestfeature-must-be-called-before-add