TextVIew中的EditText?

时间:2016-05-24 00:13:49

标签: android android-layout android-edittext textview

我正在为练习制作一个疯狂的Libs游戏,所以我会有类似EditTexts的东西,所以用户可以输入数据。

但是现在我能够做到这一点的唯一方法就是使用水平LinearLayout,然后执行类似TextView的操作,然后执行EditText,然后执行另一个TextView,但是如果用户在EditText,文本没有“很好地包装”,而是它最右边的TextView。这是可以预料的,但这不是我最终想要的行为。

有没有更好的方法将EditTexts放在TextViews中?

1 个答案:

答案 0 :(得分:0)

只需拥有一个TextView,然后就可以使用ClickableSpan,甚至可以将多个ClickableSpan添加到给定的TextView中。这为您提供了多行TextView的效果,其中某些点像EditText一样。

  

如果此类型的对象附加到带有的TextView文本   LinkMovementMethod的移动方法,受影响的文本范围可以   被选中。如果单击,将调用onClick(View)方法。

    SpannableString madLibString = new SpannableString("Our school cafeteria has really adjective food");
    ClickableSpan clickableSpan = new ClickableSpan() {
        @Override
        public void onClick(View textView) {
            Toast.makeText(getApplicationContext(), "The text 'adjective' has been clicked. Do something.",
                           Toast.LENGTH_SHORT).show();
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
            // NOTE: set styling here to give UI feedback that this is text that can be clicked and edited. 
            ds.setColor(getResources().getColor(android.R.color.holo_red_dark));
        }
    };
    madLibString.setSpan(clickableSpan, 32, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(madLibString);
    textView.setMovementMethod(LinkMovementMethod.getInstance());