1

こんにちは私は独自のカスタムキーパッドを持っているので、アダプタクラスで動的に編集テキストを作成し、ソフトキーパッドを無効にしました。ただし、問題は、クリックしたときにテキストフィールドが強調表示されず、カーソルも表示されないことです。そこで、9パッチとしてxmlファイルを作成し、それをドローアブルフォルダーに配置して、クリックされたときに編集テキストの背景を少なくとも変更しました。特定の編集テキストがクリックされていることが明確になるようにします。しかし、それは常に一定の色(濃い緑色)を示しており、順番に境界線を非表示にし、クリックした場所でその色を固定しています。カーソルさえもいくつかの場所で修正されています。以下は、明確なアイデアのためのアプリのコードとスクリーンショットです。この問題を解決する方法をアドバイスしてください。前もって感謝します。

public class TextAdapter extends BaseAdapter  {



    Context mContext;
    int count=81;
    int k=0;
    static EditText current;



    public TextAdapter(Context c) {
        mContext = c;

    }

    public int getCount() {
        return count;
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }


    public View getView(int position, View convertView, ViewGroup parent) {
        final EditText editText;

        if (convertView == null) {      


            editText = new EditText(mContext);
            editText.setLayoutParams(new GridView.LayoutParams(54, 53));
            editText.setBackgroundResource(R.drawable.edittextshape);
            editText.setGravity(Gravity.CENTER);
            editText.setFocusable(false);

            editText.setId(k);
            k++;

            editText.setFilters( new InputFilter[] { new InputFilter.LengthFilter(1)});


            editText.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    current = (EditText) v;
                    current.setBackgroundColor(R.drawable.shape1);  //here I set the background color
                    current.requestFocus();

                }

            });



            editText.setPadding(0, 0, 0, 0);
        } else {
            editText = (EditText) convertView;
        }

        editText.setText("");

        return editText;
    }

    public static EditText getCurrentEditText() throws Exception
    {

        System.out.println("In getCurrent method "+current);
        return current;

    }


}

ここに画像の説明を入力してください

4

0 に答える 0