在使用actionbar时,其中的item可以充当按钮来用,比如发送按钮。那么在编辑过程中就要动态的去控制这个item的图标和可用状态:
方法是给editext添加textChangeListener,然后在afterTextChanged方法中的最后调用一个函数:
invalidateOptionsMenu();
然后它会回调:onPrepareOptionsMenu,所以就要复写这个方法,在这个方法中来判断edittext中的文字长度,当大于0时就修改item的可用状态和图标:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.edit_over);
if (editText.getText().toString().length() > 0) {
item.setIcon(R.drawable.toolbar_publish_icon);
item.setEnabled(true);
}
return super.onPrepareOptionsMenu(menu);
}
初始的状态应该是不可用的,应该在初始时就设置:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.new_weibo_actions, menu);
MenuItem item = menu.findItem(R.id.edit_over);
item.setEnabled(false);
return true;
}
好了就是这样,前提是要找到好图片,我的方式是去解压微博或者qq的apk文件,然后去得到它们里面用到的好图片。