editView左侧editView的默认提示,我可以放在editView的右边,如果有一些api我可以使用吗?你能给我一些建议,谢谢吗?
编辑:当我使用android:gravity =“right”时,提示可以在editView的右边,但焦点也在editView的右边,我想要右边的提示,但是焦点在左边,当我输入内容时,它可以从左侧开始。 我使用@Chirag方法,但提示也在左边,如果提示是固定在右边,但我可以在左边输入?
答案 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
}
});