Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
片段取决于android中的另一个片段_Android_Android Fragments_Android Activity - Fatal编程技术网

片段取决于android中的另一个片段

片段取决于android中的另一个片段,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,我对Android编程非常陌生。以下是我正在做的事情: 我有一个编辑文本框。当它处于焦点时,我想显示一个自定义数字键盘。要实现这一点,以下是代码片段: 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_twopane" android:layout_width="match_parent" android:l

我对Android编程非常陌生。以下是我正在做的事情: 我有一个编辑文本框。当它处于焦点时,我想显示一个自定义数字键盘。要实现这一点,以下是代码片段: 布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_twopane"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <FrameLayout android:id="@+id/fragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"/>

    <FrameLayout android:id="@+id/keyPadFragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>
将侦听器添加到EditText

mAnswerEditText.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
      if(!mNumberPadShown) {
         mCallbacks.onAnswerEditTextSelected(QuizFragment.this);
      }
   });
在父活动中,我有以下内容:

@Override
public void onAnswerEditTextSelected(Fragment fragment) {
    FragmentManager fm  = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    Fragment numFragment = NumberPadFragment.newInstance(fragment);
    ft.add(R.id.keyPadFragmentContainer, numFragment);
    ft.commit();
}
在运行时,我找不到fragment NumberPadFragment的id 0x7f…(类名:id/keyPadFragmentContainer)的视图。你能告诉我哪里出了问题吗


谢谢你

如果你需要的只是数字,那么已经有一种不用定制的方法了。这叫输入类型

它可以用XML或编程方式完成

例如:

<EditText android:inputType="number" android:digits="0123456789." 
 .../> 

对于更多按钮,您可以创建自定义键盘,如下所示:


我很确定API演示也有一个示例。

更多信息。我意识到我的错误,但我不知道如何解决这个问题。FragmentActivity有一个ViewPager类型的成员变量,我有setContentView(mViewPager)-而不是setContentView(R.id.activity\u twopane)。但是,我确实有mViewPager.setId(R.id.activity\u twopane)。因此,findViewById(R.id.keyPadFragmentContainer)返回null。其目的是当EditText处于焦点时,页面应在顶部显示EditText和其他小部件,在底部显示小键盘。我找出了错误和解决方案。由于我是这个论坛的新手,我将不得不等待8个小时来提供解决方案。简单的回答是,在布局文件中,我有一个ViewPager和一个FarmLayout(用于numberpad)。有了这个更改,通过将ParentActivity中的内容视图设置为TwoPanelPayout,我就可以让它工作了。你也考虑过显示自己的自定义键盘吗?对于我的应用程序,我需要一种只输入数字(整数和小数,有符号/无符号)的方法,所以我有了自己的自定义numberpad和一组数字,+/-,.和AC(全部清楚)感谢android开发者的反馈。数字键盘有一个定制的外观和感觉-类似于其中一个链接(您提到的第二个链接)。
<EditText android:inputType="number" android:digits="0123456789." 
 .../>