TextView和EditText之间的共享元素转换

3
我尝试在TextView(源)和EditText(目标)之间共享文本, 但它不能正常工作。
问题的上下文是使用android:transtionName属性的"启动有共享元素的活动"转换。
新Activity启动后,所有其他共享视图(ImageView)都具有并显示其值。 EditText 知道内容,因为当我设置焦点时它正确地显示。 "et.getText()"日志显示EditText内容是正确的,但没有显示出来。
操作顺序如下:
1. 源Activity 'A' 有原始数据:
- TextView 值:“Hello world”。android:transtionName="transition_text" - TextView 显示:“Hello world”
2. 在用户事件中,启动Activity'B'使用共享元素过渡并添加所有要共享的元素。 3. 在'B'的onCreate方法中,共享数据被获取并正确设置。所有元素都包含它们的值,但EditText不会显示它:
- EditText 值:“Hello world”。android:transtionName="transition_text" - EditText 显示:“”
共享元素转换不允许不同类型的文本视图(TextView->EditText)之间的过渡吗?
谢谢

你能贴一些代码吗? - Anis LOUNIS aka AnixPasBesoin
我有同样的问题。从EditTextTextView的转换可以正常工作,但反过来就不行了。在TextView转换为EditText后,如果我点击EditText,文本将显示出来,因此我猜测这是由于EditText内部布局计算的问题。 - Chris
1个回答

0
尝试从 TextView 中获取文本,然后将其转换为 String,最后在 EditText 上设置文本。
TextView tv = new TextView(this);
EditText et = new EditText(this);
tv.setText("Hello World");

String source = tv.getText().toString();
et.setText(source);

但是为什么需要 toString() 呢?getText() 返回 CharSequence,而 setText() 接受 CharSequence。这会有什么区别吗? - Mithun
是的,两种方法都可以工作,但有时我会因为发布这个而出现问题 :) - Attaullah
文本已正确设置到“EditText”中,但在使用活动之间的“共享元素转换”时不显示。我已改进了解释以避免混淆。 - Jose D. Jurado
@JoseD.Jurado 你好,你找到解决方案了吗?因为我也遇到了同样的问题。 - rd7773

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接