有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在安卓中设置文本或向多行EditText中的特定行添加文本?

我想在安卓中设置文本或将文本添加到EditText的特定行中?有什么办法吗

据我所知setText将覆盖整个文本append将在末尾添加文本,我想做什么有什么具体的方法吗

我知道如何阅读和获取特定行中的文本,但如何在不干扰其上下其他行的情况下对该文本进行更改


共 (3) 个答案

  1. # 1 楼答案

    最有可能的是,多行文字将由一个换行符分隔,下面的代码将为您提供一个澄清

    public class EditTextExample extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_edtittext_example);
    
            Button button = (Button) findViewById(R.id.m_button);
            button.setOnClickListener(btnListener);
        }
    
    
        //button listener
        private OnClickListener btnListener = new OnClickListener() {
    
        public void onClick (View view) {
    
        EditText etMultiLinetext = (EditText) findViewById(R.id.etMultiLineText);
        String str = etMultiLinetext.getText().toString();
    
        Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
    
        TextView tvMultiLineText = (TextView) findViewById(R.id.tvMultiLineText);
        String[] strArr = str.split(System.getProperty("line.separator"));
        for (int i = 0; i < strArr.length; i++) {
            Log.e("String value", "String value" + strArr[i]);
        }
        tvMultiLineText.setText(str);
       }
      }; 
    }
    

    如果你想在编辑文本中添加内容,你可以通过获取EditText值来添加内容,并附加你需要的字符串,你可以像下面那样设置它

    etMultiLine.setText("Edited Text");

  2. # 2 楼答案

    你应该尝试使用这个类型代码

    EditText edt_Text= new EditText(this);
    edt_Text.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    edt_Text.setText("Hi how you");
    lnrImageButton.addView(edt_Text);
    

    并设置按钮onClick以添加所需的新角色

    menu1.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                edt_Text.getText().insert(6, "are");
            }
        });
    

    此代码用于特定的字符库

    现在,您应该使用此方法从字符中找到行并插入文本

    我希望这对你有帮助

  3. # 3 楼答案

    1)使用EditText#getText();EditText获取Editable

    2)对上一步中得到的Editable进行修改

    Editable有一个方法insert(int where, CharSequence text)-使用它插入你想要的地方

    3)使用EditText#setText();将其设置回EditText(将整个修改的Editable设置回)

    如果你想知道在你收到的Editable中哪里有行尾符号,那么搜索它的新行字符aka'\n',然后使用这个位置在'\n'后面插入一些东西,如果你想插入一个由EditText对齐的特定行,那么你需要进入EditText的“对齐引擎”,我不知道它是如何工作的,所以如果你想这样做,你需要阅读资料来源