我需要做一个非常简单的事情 - 找出是否显示了软件键盘.这在Android中可行吗?
我已经成功实现onRetainNonConfigurationInstance()了我的主要功能,Activity以保存和恢复屏幕方向更改中的某些关键组件.
但看起来,当方向发生变化时,我的自定义视图将从头开始重新创建.这是有道理的,虽然在我的情况下它很不方便,因为所讨论的自定义视图是X/Y图,并且绘制的点存储在自定义视图中.
是否有一种狡猾的方法来实现类似于onRetainNonConfigurationInstance()自定义视图的东西,或者我是否需要在自定义视图中实现允许我获取并设置其"状态"的方法?
我喜欢我的UI直观; 每个屏幕应该自然而不引人注目地引导用户进入应用程序的下一步.除此之外,我努力使事情变得混乱和混乱.
开玩笑 :-)
我有三个TableRows,每个包含一个只读和不可聚焦的EditText控件,然后是一个右边的按钮.每个按钮启动相同的活动但具有不同的参数.用户在那里进行选择,子活动结束,EditText用用户的选择填充适当的.
这是经典的级联值机制; 每个选择都会缩小下一个选择的可用选项等.因此,我将禁用每个下一行的两个控件,直到当前行上的EditText包含值.
我需要按照优先顺序做两件事之一:
子活动返回后,问题就出现了; 单击的按钮保持焦点.
回复:上面的#1 - 似乎没有removeFocus()方法或类似的东西
回复:上面的#2 - 我可以requestFocus()用来将焦点设置到下一行的按钮,并且在子活动返回后工作,但由于某种原因,它在父活动中不起作用onCreate().
我需要在任一方向上保持UI一致性 - 子活动完成后没有按钮具有焦点,或者每个按钮根据其在逻辑流程中的位置获得焦点,包括在任何选择之前的第一个(也是唯一的)活动按钮.
我遇到了一些我从一本书改编的BaseAdapter代码的问题.我一直在我的应用程序中使用此代码的变体,但只是在滚动一个长列表时才实现ListView中的项目变得混乱而不是所有元素都显示出来.
描述确切的行为非常困难,但很容易看出你是否采用了50个项目的排序列表并开始上下滚动.
class ContactAdapter extends BaseAdapter {
ArrayList<Contact> mContacts;
public ContactAdapter(ArrayList<Contact> contacts) {
mContacts = contacts;
}
@Override
public int getCount() {
return mContacts.size();
}
@Override
public Object getItem(int position) {
return mContacts.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if(convertView == null){
LayoutInflater li = getLayoutInflater();
view = li.inflate(R.layout.groups_item, null);
TextView label = (TextView)view.findViewById(R.id.groups_item_title);
label.setText(mContacts.get(position).getName());
label = (TextView)view.findViewById(R.id.groups_item_subtitle);
label.setText(mContacts.get(position).getNumber());
}
else
{
view = …Run Code Online (Sandbox Code Playgroud)