如何将提示放在editView的右侧?

时间:2011-03-14 08:44:56

标签: android

editView左侧editView的默认提示,我可以放在editView的右边,如果有一些api我可以使用吗?你能给我一些建议,谢谢吗?

编辑:当我使用android:gravity =“right”时,提示可以在editView的右边,但焦点也在editView的右边,我想要右边的提示,但是焦点在左边,当我输入内容时,它可以从左侧开始。 我使用@Chirag方法,但提示也在左边,如果提示是固定在右边,但我可以在左边输入?

2 个答案:

答案 0 :(得分:3)

请将edittext gravity设置为右:

<EditText android:id="@+id/search"
        android:layout_height="wrap_content" 
        android:layout_gravity="left"
        android:textSize="15sp"                             
        android:layout_marginTop="12dp" android:layout_marginLeft="36dp"
        android:layout_width="175dp" android:hint="Search"
        android:singleLine="true" android:textColor="@color/grey"
        android:imeOptions="actionSearch"
        android:gravity="right" />

search.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v) 
        {   
            search.setGravity(Gravity.LEFT);
        }
    });

search.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) 
        {

            if ((event.getKeyCode() == 67)
                    && (event.getAction() == KeyEvent.ACTION_DOWN)) {
                try {
                    if (searchTrack.getText().toString().length() == 0) 
                   {
                           search.setGravity(Gravity.RIGHT);

                   }
                } catch (Exception e) {
                    // TODO: handle exception
                }

            }
            return false;
        }
    });

答案 1 :(得分:1)

我认为它更适用于使用文本更改侦听器:

    edittext.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            if (edittext.getText().length() == 0)
            {
                edittext.setGravity(Gravity.RIGHT);
            }
            else {
                edittext.setGravity(Gravity.LEFT);
            }

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });