2015-10-16 36 views
1

我在我的片段中實現自定義鍵盤。我想將位於我的片段UI中的EditText的ResourceId發送到自定義鍵盤類。我在收到自定義鍵盤類中的ResourceId時收到NullPointerException,這意味着Resourceid未發送。如何將ResourceId從片段發送到另一個類

我實現的代碼是:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    rootView = inflater.inflate(R.layout.fragment_barcode_detail, 
      container, false); 
    inflater = (LayoutInflater) mActivity 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
editText_barcode = (EditText) rootView 
      .findViewById(R.id.editText_barcode); 
mCustomKeyboard = new CustomKeyboard(mActivity, R.id.keyboardview,R.xml.hexkbd); 
    System.out.println("====inac====" + R.id.editText_barcode); 
    mCustomKeyboard.registerEditText(mActivity, R.id.editText_barcode); 

    return rootView; 
} 

自定義鍵盤類是:

class CustomKeyboard { 


private KeyboardView mKeyboardView; 
/** A link to the activity that hosts the {@link #mKeyboardView}. */ 
private Activity mHostActivity; 
private EditText edittext; 


public CustomKeyboard(Activity host, int viewid, int layoutid) { 
    mHostActivity= host; 
    mKeyboardView= (KeyboardView)mHostActivity.findViewById(viewid); // 
Getting Resourceid successfully 
    mKeyboardView.setKeyboard(new Keyboard(mHostActivity, layoutid)); 
    mKeyboardView.setPreviewEnabled(false); 
    mKeyboardView.setOnKeyboardActionListener(mOnKeyboardActionListener); 

} 

public void registerEditText(int resid) { 
    // Find the EditText 'resid' 
    System.out.println("======ed"+resid); 
    edittext= (EditText)mHostActivity.findViewById(resid);// 
Not Getting Resourceid 
} 
+1

相反'R.id.editText_barcode'發送'editText_barcode'對象EditText –

+0

感謝它的工作:) –

+0

只是接受我的回答.... –

回答

0

而是 'R.id.editText_barcode' 發送 'editText_barcode' 對象的EditText

相關問題