我正在尝试创建一个非常简单的应用程序(我的学习程序的一部分),垂直导向,顶部有一个 EditText ,它接收一个URL,两个按钮并排放在那个旁边根据输入的网址(例如 .html 与 .png )说“获取图片”或“获取文字”。生成的元素可能会被稍后用于真实应用程序。
我知道 ScrollView 只能有一个孩子。从概念上讲,我希望屏幕的其余部分是一个垂直方向的内容区域,用于显示URL的文本( TextView )和单击“获取文本”或图像( ImageView < / em>)如果是图像并点击了“获取图像”。
我尝试在 main.xml 中执行此操作(伪代码):
<LinearLayout>
<EditText /> --where to type the URL
<Button /> --click to treat URL as text
<Button /> --click to treat URL as image
<FrameLayout> --(used to be ScrollView)
<LinearLayout>
<TextView /> --content region occupied by either text
<ImageView /> --or an image (but not both)
</LinearLayout>
</FrameLayout>
</LinearLayout>
为了不违反独生子女的要求。然而,这不起作用,现在我找不到任何样本,这些都可以让我了解如何最好地实现这一目标。我在调试时得到的最后一个抱怨是:
引起: java.lang.ClassCastException: android.widget.TextView
如果有人有时间和耐心引导我走向一些有用的方向,我会非常感激。
谢谢,
Russ Bateman
答案 0 :(得分:0)
“不起作用”是什么意思?
您能为异常提供完整的stacktrace / logcat输出吗?
我没有看到你勾勒出的xml有什么问题。我假设您将其中一个或另一个的可见性设置为GONE,具体取决于您要显示的内容?
由于您希望TextView和ImageView在彼此之上,因此您可能会考虑使用FrameLayout而不是LinearLayout。
编辑: 您的logcat表示您在Download类的第33行上有ClassCastException。这意味着您正在尝试将非TextView的内容转换为TextView。也许你正在抓住错误的UI元素?没有看到代码很难说。
答案 1 :(得分:0)
你的xml中有两个具有相同id的元素,这只是无法工作,它是一个id。
final TextView textView = ( TextView ) findViewById( R.id.content );
final ImageView imageView = ( ImageView )findViewById( R.id.content );
您必须将它们区分为textcontent和imagecontent。