我對Android編程非常陌生。以下是我在做什麼: 我有一個EditTextBox。當它在焦點時,我想顯示一個自定義數字鍵盤。爲了實現這一點,下面是代碼片斷: 佈局文件:片段取決於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>
在片段類,定義了父活動必須實現
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);
}
});
在Parent活動中,我有foll因爲:
@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();
}
在運行時,我得到的...(類名:ID/keyPadFragmentContainer)發現ID 0x7F的任何視圖片段NumberPadFragment。你能告訴我我哪裏出錯了嗎?
謝謝
一些更多信息。我意識到我的錯誤,但我不知道如何解決這個問題。 FragmentActivity有一個ViewPager類型的成員變量,我有setContentView(mViewPager) - 而不是setContentView(R.id.activity_twopane)。不過,我確實有mViewPager.setId(R.id.activity_twopane)。因此,findViewById(R.id.keyPadFragmentContainer)返回null。 – user2808089
意圖是,當EditText處於焦點時,頁面應該顯示頂部的EditText和其他小部件以及底部的小鍵盤。 – user2808089
我想出了我的錯誤和解決方案。由於我是這個論壇的新手,我將不得不等待8個小時才能提供解決方案。簡短的回答是,在佈局文件中,我有一個ViewPager和一個FarmLayout(用於數字鍵盤)。通過這種改變,並通過將ParentActivity中的內容視圖設置爲雙面佈局,我能夠實現它。 – user2808089