相关疑难解决方法(0)

如何检查Android中软件键盘的可见性?

我需要做一个非常简单的事情 - 找出是否显示了软件键盘.这在Android中可行吗?

android visibility android-softkeyboard

502
推荐指数
9
解决办法
26万
查看次数

如何防止自定义视图在屏幕方向更改时丢失状态

我已经成功实现onRetainNonConfigurationInstance()了我的主要功能,Activity以保存和恢复屏幕方向更改中的某些关键组件.

但看起来,当方向发生变化时,我的自定义视图将从头开始重新创建.这是有道理的,虽然在我的情况下它很不方便,因为所讨论的自定义视图是X/Y图,并且绘制的点存储在自定义视图中.

是否有一种狡猾的方法来实现类似于onRetainNonConfigurationInstance()自定义视图的东西,或者我是否需要在自定义视图中实现允许我获取并设置其"状态"的方法?

android state screen-orientation android-activity

243
推荐指数
5
解决办法
9万
查看次数

如何在不将焦点设置到其他控件的情况下移除焦点

我喜欢我的UI直观; 每个屏幕应该自然而不引人注目地引导用户进入应用程序的下一步.除此之外,我努力使事情变得混乱和混乱.

开玩笑 :-)

我有三个TableRows,每个包含一个只读和不可聚焦的EditText控件,然后是一个右边的按钮.每个按钮启动相同的活动但具有不同的参数.用户在那里进行选择,子活动结束,EditText用用户的选择填充适当的.

这是经典的级联值机制; 每个选择都会缩小下一个选择的可用选项等.因此,我将禁用每个下一行的两个控件,直到当前行上的EditText包含值.

我需要按照优先顺序做两件事之一:

  1. 单击按钮时,立即移除焦点而不将焦点设置为其他按钮
  2. 活动开始时将焦点设置为第一个按钮

子活动返回后,问题就出现了; 单击的按钮保持焦点.

回复:上面的#1 - 似乎没有removeFocus()方法或类似的东西

回复:上面的#2 - 我可以requestFocus()用来将焦点设置到下一行的按钮,并且在子活动返回后工作,但由于某种原因,它在父活动中不起作用onCreate().

我需要在任一方向上保持UI一致性 - 子活动完成后没有按钮具有焦点,或者每个按钮根据其在逻辑流程中的位置获得焦点,包括在任何选择之前的第一个(也是唯一的)活动按钮.

android android-layout

88
推荐指数
5
解决办法
11万
查看次数

BaseAdapter导致ListView在滚动时出现故障

我遇到了一些我从一本书改编的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)

android listview

9
推荐指数
2
解决办法
7693
查看次数