Android EditText setText和输入文本在最后?

时间:2013-12-27 03:54:07

标签: android android-edittext

我使用EditText输入一些信息,并使用EditText中的setText 但我有一个问题,当EditText显示时,键盘显示也是如此。 当我输入文本时,它将首先添加文本而不是我之前设置的文本!

这是带键盘的editText

[这里是键盘输入文本]示例< - 这个例子是我的setText enter image description here

我需要在我的文字之后设置输入文字

示例[这里是键盘输入文本] enter image description here

感谢您的帮助......

5 个答案:

答案 0 :(得分:3)

我认为您需要将setSelection移至文本末尾

EditText et = (EditText)findViewById(R.id.edittext1);
et.setSelection(et.getText().length());

答案 1 :(得分:1)

您应该将选择设置为结尾,如下所示:

EditText editText = (EditText) findViewById(R.id.editText);
editText.setText("smb://");
editText.setSelection(editText.getText().length());

注意:如果您需要空格,请按以下步骤更新setTexteditText.setText("example ");

答案 2 :(得分:0)

为此你可以添加一个textChanged监听器来编辑文本,你可以在你想要的索引处添加你的默认文本。(我的意思是你覆盖这些方法来实现你的逻辑)

   edittext.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void afterTextChanged(Editable s) {
     editText.setText("<add your desired text here>");//for suppose here your text is "example" (length 7 )
     editText.setSelection(<your text length[here 7 for the text "example"]>);



    }
});

答案 3 :(得分:0)

在您的edittext小部件和主类中设置默认文本,实现其文本更改侦听器,为方便起见,我放了一个print语句来查看 输入的文字

package com.example.edittext;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.widget.EditText;

public class MainActivity extends Activity {
    String defaultText;
    EditText text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = (EditText) findViewById(R.id.edittext);
        defaultText  = text.getText().toString();
        text.setSelection(defaultText.length());
        text.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                //text.setText(defaultText+s);

            }

            @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
                System.out.println(s.toString());


            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

答案 4 :(得分:0)

您可以使用EditText上的setSelection(int index)方法将光标移至EditText的末尾。

例如:

EditText et = (EditText)findViewById(R.id.editText);
et.setText("smb://");

// after you set the text, write this line:
et.setSelection(et.length()); 
// or et.setSelection(et.getText().toString().length());

这会将EditText中的光标设置为EditText中文本的最后位置。