2013-09-27 40 views
1

我對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。你能告訴我我哪裏出錯了嗎?

謝謝

+0

一些更多信息。我意識到我的錯誤,但我不知道如何解決這個問題。 FragmentActivity有一個ViewPager類型的成員變量,我有setContentView(mViewPager) - 而不是setContentView(R.id.activity_twopane)。不過,我確實有mViewPager.setId(R.id.activity_twopane)。因此,findViewById(R.id.keyPadFragmentContainer)返回null。 – user2808089

+0

意圖是,當EditText處於焦點時,頁面應該顯示頂部的EditText和其他小部件以及底部的小鍵盤。 – user2808089

+0

我想出了我的錯誤和解決方案。由於我是這個論壇的新手,我將不得不等待8個小時才能提供解決方案。簡短的回答是,在佈局文件中,我有一個ViewPager和一個FarmLayout(用於數字鍵盤)。通過這種改變,並通過將ParentActivity中的內容視圖設置爲雙面佈局,我能夠實現它。 – user2808089

回答

0

如果它只是你需要,已經有一個辦法做到這一點沒有任何定製的數字。它被稱爲inputType。

它可以用XML或編程方式完成。

例如:

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

更多的按鈕,你可以創建自定義鍵盤,如下所示:

我很確定API演示也有樣例。

+0

謝謝android開發人員的反饋意見。數字鍵盤具有自定義外觀和感覺 - 類似於其中一個鏈接(您提到的第二個鏈接)。 – user2808089

+0

好吧,試試吧。 –

相關問題