我对 Android 编程很陌生。以下是我正在做的事情:我有一个 EditTextBox。当它成为焦点时,我想显示一个自定义数字键盘。为了实现这一点,以下是代码片段: 布局文件:
<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>
在 Fragment 类中,定义了父 Activity 必须实现的 Callbacks 接口
public interface Callbacks {
void onAnswerEditTextSelected(Fragment fragment);
}
向 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();
}
在运行时,我得到 No view found for id 0x7f ...(classname:id/keyPadFragmentContainer) 片段 NumberPadFragment。你能告诉我哪里出错了。
谢谢