相关疑难解决方法(0)

使用向上/向下滑动动画显示和隐藏视图

我有一个LinearLayout我希望显示或隐藏的内容Animation,只要我改变其可见性,就会向上或向下推动布局.

我在那里看到了一些样品,但它们都不适合我的需要.

我为动画创建了两个xml文件,但是当我更改a的可见性时,我不知道如何启动它们LinearLayout.

animation android android-animation

287
推荐指数
9
解决办法
33万
查看次数

如何在edittext上禁用键盘弹出?

在我的应用程序中,我所有屏幕的第一个视图是EditText,因此每次进入屏幕时,屏幕键盘都会弹出.如何禁用此弹出窗口并在手动单击EditText时启用它?

    eT = (EditText) findViewById(R.id.searchAutoCompleteTextView_feed);

    eT.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View v, boolean hasFocus) {

            if(hasFocus){
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
            imm.hideSoftInputFromWindow(eT.getWindowToken(), 0);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

xml代码:

<ImageView
    android:id="@+id/feedPageLogo"
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:src="@drawable/wic_logo_small" />

<Button
    android:id="@+id/goButton_feed"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="@string/go" />

<EditText
    android:id="@+id/searchAutoCompleteTextView_feed"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/goButton_feed"
    android:layout_toRightOf="@id/feedPageLogo"
    android:hint="@string/search" />

<TextView
    android:id="@+id/feedLabel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/feedPageLogo"
    android:gravity="center_vertical|center_horizontal"
    android:text="@string/feed"
    android:textColor="@color/white" />

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ButtonsLayout_feed"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" >

    <Button
        android:id="@+id/feedButton_feed"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_margin="0dp"
        android:layout_weight="1"
        android:background="@color/white"
        android:text="@string/feed"
        android:textColor="@color/black" />

    <Button
        android:id="@+id/iWantButton_feed"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_margin="0dp"
        android:layout_weight="1" …
Run Code Online (Sandbox Code Playgroud)

android android-edittext

81
推荐指数
8
解决办法
14万
查看次数

如何在视图中捕获软键盘输入?

我有一个子类视图,当它在onTouchEvent中收到"修饰"时弹出键盘.它通过请求焦点,检索InputMethodManager,然后调用showSoftInput来显示此信息.

现在我需要弄清楚如何在按下它们时捕获软键盘的敲击字母.我目前只在软键盘上按下"下一个/完成"按钮时得到响应.

这是我的班级:

public class BigGrid extends View {

    private static final String TAG = "BigGrid";

    public BigGrid(Context context) {
        super(context);
        setFocusableInTouchMode(true); // allows the keyboard to pop up on
                                       // touch down

        setOnKeyListener(new OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.d(TAG, "onKeyListener");
                if (event.getAction() == KeyEvent.ACTION_DOWN) {
                    // Perform action on key press
                    Log.d(TAG, "ACTION_DOWN");
                    return true;
                }
                return false;
            }
        });
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        super.onTouchEvent(event);
        Log.d(TAG, "onTOUCH");
        if …
Run Code Online (Sandbox Code Playgroud)

android

48
推荐指数
3
解决办法
4万
查看次数

Java的.用于实现侦听器的正确模式

通常我会遇到一个给定对象需要有很多监听器的情况.例如,我可能有

class Elephant {
  public void addListener( ElephantListener listener ) { ... }
}
Run Code Online (Sandbox Code Playgroud)

但我会遇到很多这样的情况.也就是说,我也会有一个Tiger对象TigerListener.现在,TigerListeners和ElephantListeners完全不同:

interface TigerListener {
  void listenForGrowl( Growl qrowl );
  void listenForMeow( Meow meow );
}
Run Code Online (Sandbox Code Playgroud)

interface ElephantListener {
  void listenForStomp( String location, double intensity );
}
Run Code Online (Sandbox Code Playgroud)

我发现我总是必须在每个动物类中继续重新实现广播机制,并且实现总是相同的.有首选模式吗?

java design-patterns listeners

25
推荐指数
2
解决办法
3万
查看次数

在Android中创建自定义键盘

我想编写一个自定义键盘,它应该适用于运行Android 4.0及更高版本的所有设备.所以我首先搜索网络,但没有发现任何相关信息.那么如何创建一个取代Android的股票键盘的应用程序呢?

我想知道的是什么:

  1. 那里有一个很好的教程吗?你们有样例代码吗?
  2. 我需要root才能这样做吗?
  3. 它背后的结构是什么?(它只是一个带有服务的常规活动吗??)
  4. 是否可以读出键盘内的输入框?

keyboard android android-softkeyboard

20
推荐指数
2
解决办法
3万
查看次数

需要数量只有软键盘?

嗨,我需要一个软键盘只用数值09Enter关键.不应该显示除了这些之外的任何东西. , ( )......

在此输入图像描述

我尝试了这里建议的几个选项,但没有什么似乎对我有用.

  1. setRawInputType(Configuration.KEYBOARD_QWERTY)
  2. setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED)
  3. setRawInputType(InputType.TYPE_CLASS_NUMBER)
  4. setRawInputType(InputType.TYPE_CLASS_PHONE)

我总是在键盘上显示额外的字符,如:

在此输入图像描述

setRawInputType(Configuration.KEYBOARD_12KEY) 显示这样的键盘:

在此输入图像描述

非常感谢任何帮助.提前致谢.

注意:

  • android:minSdkVersion="14":ICS4.0
  • android:targetSdkVersion="17":JB 4.2

qwerty android ime android-softkeyboard android-input-method

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

Android自定义键盘 - 预览视图约束到父布局

我创建了一个自定义键盘,它工作正常 - 除了前两行键的预览视图显示不够高.它们的垂直位置受到父布局的约束.

这些屏幕截图说明了问题 - "0"和"8"的预览位置是好的,但对于"5"和"2",它不是:

键'0'的预览显示在按钮上方...

按钮'0'

键'8'的预览也显示在按钮上方...

按钮'8'

但键'5'的预览未显示在按钮上方...

按钮'5'

键'2'的预览未显示在按钮上方...

按钮'2'

如何克服,因此"5"和"2"的预览显示在它们各自键上方相同的距离处,与"0"和"8"相同.

这是我的keyboard.xml ...

<android.inputmethodservice.KeyboardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:keyPreviewLayout="@layout/keyboard_key_preview" />
Run Code Online (Sandbox Code Playgroud)

这是我的keyboard_key_preview.xml ...

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:background="@color/keyboard_preview_bg"
    android:textColor="@color/keyboard_preview_fg"
    android:textStyle="bold"
    android:textSize="@dimen/keyboard_preview_text_size" />
Run Code Online (Sandbox Code Playgroud)

这是我的keyboard_numeric.xml布局......

<Keyboard
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="33.33%p"
    android:keyHeight="@dimen/keyboard_key_height"
    android:horizontalGap="@dimen/keyboard_horizontal_gap"
    android:verticalGap="@dimen/keyboard_vertical_gap">
    <Row android:rowEdgeFlags="top">
        <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
        <Key android:codes="50" android:keyLabel="2"/>
        <Key android:codes="51" android:keyLabel="3" android:keyEdgeFlags="right"/>
    </Row>
    <Row>
        <Key android:codes="52" android:keyLabel="4" android:keyEdgeFlags="left"/>
        <Key android:codes="53" android:keyLabel="5"/>
        <Key android:codes="54" android:keyLabel="6" android:keyEdgeFlags="right"/>
    </Row>
    <Row>
        <Key android:codes="55" android:keyLabel="7" android:keyEdgeFlags="left"/>
        <Key android:codes="56" android:keyLabel="8"/>
        <Key …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-custom-keyboard

10
推荐指数
2
解决办法
2281
查看次数

在webView中阻止键盘

我希望由于我的webView中的操作而弹出软键盘是不可能的.那是因为我有一个自定义的"键盘",由webView下面的按钮组成.但是,我不想为我的应用程序完全禁用键盘,因为我必须在不同的上下文中使用它.当用户单击webView中的输入字段时,它不应该显示.我也不希望键盘显示并立即再次隐藏.

我目前在我的这个AndroidManifest.xml:

android:windowSoftInputMode="stateAlwaysHidden"
Run Code Online (Sandbox Code Playgroud)

我已经尝试禁用webView的焦点,但是我不能用我的自定义"键盘"输入文本,因为webView的输入字段没有聚焦.

我也试过这个onCreate,但它不起作用(键盘仍然显示):

View focusedView = this.getCurrentFocus();
if (focusedView == null)
    return;
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (manager == null)
    return;
manager.hideSoftInputFromWindow(focusedView.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

java keyboard android webview android-softkeyboard

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

是否可以显示特定语言的键盘?

假设我有两个具有相同布局的文本字段,例如(地址),第一个输入要求地址为英文,键盘应​​默认显示为英文,第二个输入要求地址为阿拉伯语.

我的问题是:我是否可以在需要时使用特定语言显示键盘,例如阿拉伯语地址.

是否有类似android:inputType""语言的东西?

android android-edittext

8
推荐指数
1
解决办法
960
查看次数

我可以在自定义应用内键盘上使用Android InputMethodManager吗?

InputMethodManager是一种应用程序可用于与系统键盘交互的服务.编辑EditText也喜欢用它来间接通知键盘变化(例如updateSelection).

我可以参考InputMethodManager这个

InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
Run Code Online (Sandbox Code Playgroud)

我的问题是,这似乎只适用于系统键盘.我可以使用InputMethodManager一个自定义应用程序内的键盘?如果只是一个孤立的应用程序我不在乎,但我在一个库中包括一个将在许多应用程序中使用的自定义键盘.我需要一种标准的方式让编辑器与键盘进行通信.

我是否必须编写自己的输入法管理器,或者是否有办法在InputMethodManager我的自定义应用内键盘中使用该标准?

更新

以下是一些线索,说明如果无法使用标准输入法管理器,我将如何实现自己的自定义输入法管理器.

keyboard android custom-keyboard inputmethodmanager

7
推荐指数
1
解决办法
656
查看次数