0

私はフラグメントを使用しており、編集テキストをクリックすると、特別なキーボード (多くのボタンをクリック可能) が表示されますが、ボタンのクリックを検出する正しい方法が見つかりません。

onCreateView コードは次のとおりです。

        public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
    {
        View view = inflater.inflate(R.layout.fragment_rsslist_overview,container, false);
                try {
                    setKeys();

                } catch (Exception e) {
                    Log.w(getClass().getName(), e.toString());
                }
        //

        return view;
    }

ここにsetKeysコードがあります:(私はmBSpaceボタンで多くのことを試しました)

        public void setKeys() {
        mWindowWidth = getActivity().getWindowManager().getDefaultDisplay().getWidth(); // getting
        // window
        // height
        // getting ids from xml files
        mB[0] = (Button) getActivity().findViewById(R.id.xA);
        mB[1] = (Button) getActivity().findViewById(R.id.xB);
        mB[2] = (Button) getActivity().findViewById(R.id.xC);
        mB[3] = (Button) getActivity().findViewById(R.id.xD);
        mB[4] = (Button) getActivity().findViewById(R.id.xE);
        mB[5] = (Button) getActivity().findViewById(R.id.xF);
        mB[6] = (Button) getActivity().findViewById(R.id.xG);
        mB[7] = (Button) getActivity().findViewById(R.id.xH);
        mB[8] = (Button) getActivity().findViewById(R.id.xI);
        mB[9] = (Button) getActivity().findViewById(R.id.xJ);
        mB[10] = (Button) getActivity().findViewById(R.id.xK);
        mB[11] = (Button) getActivity().findViewById(R.id.xL);
        mB[12] = (Button) getActivity().findViewById(R.id.xM);
        mB[13] = (Button) getActivity().findViewById(R.id.xN);
        mB[14] = (Button) getActivity().findViewById(R.id.xO);
        mB[15] = (Button) getActivity().findViewById(R.id.xP);
        mB[16] = (Button) getActivity().findViewById(R.id.xQ);
        mB[17] = (Button) getActivity().findViewById(R.id.xR);
        mB[18] = (Button) getActivity().findViewById(R.id.xS);
        mB[19] = (Button) getActivity().findViewById(R.id.xT);
        mB[20] = (Button) getActivity().findViewById(R.id.xU);
        mB[21] = (Button) getActivity().findViewById(R.id.xV);
        mB[22] = (Button) getActivity().findViewById(R.id.xW);
        mB[23] = (Button) getActivity().findViewById(R.id.xX);
        mB[24] = (Button) getActivity().findViewById(R.id.xY);
        mB[25] = (Button) getActivity().findViewById(R.id.xZ);
        mB[26] = (Button) getActivity().findViewById(R.id.xS1);
        mB[27] = (Button) getActivity().findViewById(R.id.xS2);
        mB[28] = (Button) getActivity().findViewById(R.id.xS3);
        mB[29] = (Button) getActivity().findViewById(R.id.xS4);
        mB[30] = (Button) getActivity().findViewById(R.id.xS5);
        mB[31] = (Button) getActivity().findViewById(R.id.xS6);
        mBSpace = (Button) getActivity().findViewById(R.id.xSpace);
        mBdone = (Button) getActivity().findViewById(R.id.xDone);
        mBChange = (Button) getActivity().findViewById(R.id.xChange);
        mBack = (Button) getActivity().findViewById(R.id.xBack);
        mNum = (Button) getActivity().findViewById(R.id.xNum);
//      for (int i = 0; i < mB.length; i++)
        mBSpace.setOnClickListener( this);
/*      
        mBSpace.setOnClickListener( new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    edittext_onClick(v );
                }
              });
*/          
/*          
            mB[i].setOnClickListener( this);
        mBSpace.setOnClickListener( this);
        mBdone.setOnClickListener( this);
        mBack.setOnClickListener( this);
        mBChange.setOnClickListener( this);
        mNum.setOnClickListener( this);
//      mNum.setOnClickListener( this);
*/      


    }

彼が正しい構文を知っている誰かがこれを行いますか? 私は setkey() を呼び出してみました:

    public void onActivityCreated (Bundle savedInstanceState){
    setKeys();
    super.onActivityCreated(savedInstanceState);
}

エラーはありませんが、クリック検出もありません...事前にThx...

4

2 に答える 2

1

EditText の xml 要素で android:clickable="true" を試しましたか?

于 2013-02-20T10:02:32.697 に答える
0

特別なキーボード レイアウトが現在の contentView の一部であることを確認してください。そうではなく、現在のビューにインフレートしている場合は、ボタンへの参照を取得するときに使用する必要があります

buttonA = inflatedLayout.findViewById(R.id.button);

また、共通の onClickListener を作成し、すべてのボタンをバインドします

OnClickListener buttonClickListener = new OnClickListener() {

      @Override
            public void onClick(View v) {

                edititext.setText(v.getTag().toString()); 
                // or whatever logic you are using

            }

}
于 2013-02-20T10:15:01.400 に答える