输入类型=数字不起作用

时间:2014-10-16 07:32:42

标签: java android android-fragments

首先,这是nexus 5上使用默认输入法的问题。

问题是,如果我使用v4片段标签主机和编辑文本(输入类型=数字),当我输入数字时,它将切换到字母键盘,并且编辑文本中没有输入任何内容。

我确定这是v4片段标签主机的问题,因为我尝试了tabhost它可以工作,我只使用活动而不是任何标签主机,它的工作原理。当输入type =“text”,并切换到num pad时,它可以工作。我也可以捕获onKeyDown事件。

唯一的失败案例是输入类型=数字,编辑文本位于v4片段tabhost内

标签片段的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

        <EditText
        android:id="@+id/edit_ratio"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:layout_marginBottom="5dp"
        android:digits="0123456789."
        android:inputType="number"
        android:maxLength="4"
        android:padding="5dp"
        android:textSize="16sp" />

</RelativeLayout>

标签的布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/tabBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:orientation="horizontal"
            android:visibility="gone" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" />
        </LinearLayout>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0" />

        <FrameLayout
            android:id="@+id/realtabcontent"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />
    </LinearLayout>

</android.support.v4.app.FragmentTabHost>

主要活动的java

public class Main extends ActionBarActivity {

    public static FragmentTabHost tabHost;
    public static LinearLayout tabBar;
    private String[] tags = { "home", "form", "calculator", "phone", "partner", "about_us", "settings" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
        tabBar = (LinearLayout) findViewById(R.id.tabBar);
        tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

        tabHost.addTab(
                tabHost.newTabSpec(tags[0]).setIndicator(""),
                HomeFragment.class, null);


    }

}

另外,我发现在使用名为“Simplified cangjie keyboard”的输入法和nexus 5时会发生这种情况。所以我想知道如何解决它。真的非常感谢。

0 个答案:

没有答案