显示突出显示的文本 android

displaying highlighted text android

我希望突出显示的文本显示为按钮上的文本。

 EditText et;
Button button;
String test;
    button = (Button)findViewById(R.id.button);
    et    =(EditText)findViewById(R.id.et);
    int startSelection=et.getSelectionStart();
    int endSelection=et.getSelectionEnd();

    test = et.getText().toString().substring(startSelection, endSelection);
    button.setOnClickListener(
            new View.OnClickListener()
            {
                public void onClick(View view)
                {
                    button.setText(test);
                }
            });

我不明白为什么它不起作用,我认为 getseltectionstart 和 end 是将我的文本转换为字符串然后显示在按钮上?

根据此处的文档:http://developer.android.com/reference/android/text/Selection.html#getSelectionStart(java.lang.CharSequence)

public static final int getSelectionStart (CharSequence text)

Added in API level 1 Return the offset of the selection anchor or cursor, or -1 if there is no selection or cursor.

因此,一旦您实例化您的项目,您就会调用 getSelectionStart() 和 getSelectionEnd(),这两个 return -1(因为您还没有选择任何东西)。

    button.setOnClickListener(
            new View.OnClickListener()
            {
                public void onClick(View view)
                {
                    int startSelection=et.getSelectionStart();
                    int endSelection=et.getSelectionEnd();
                    test = et.getText().toString().substring(startSelection, endSelection);
                    button.setText(test);
                }
            });

}

有效,谢谢!