我正在尝试做简单的交互界面,我通过android链接以下方法:onClick所以我应该在单击按钮时显示替代图像和文本,但是当我点击按钮时没有发生了,这里遗漏的部分是什么
public void eatCookie(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ImageView eated = new ImageView(this);
eated.setImageResource(R.drawable.after_cookie);
TextView eatedtext = new TextView(this);
eatedtext.setText("i'm so full");
TextView eatedText = (TextView)findViewById(R.id.status_text_view);
// TODO: Find a reference to the TextView in the layout. Change the text.
}
答案 0 :(得分:1)
第一个问题:
假设您创建了TextView和ImageView:
ImageView eated = new ImageView(this);
TextView eatedtext = new TextView(this);
在您的活动中,我确定您使用的是xml布局或自定义ViewGroup,因此您错过了代码,您可以通过调用{{3}将eated
和eatedtext
添加到布局中方法。
第二个问题:
如果我们假设您确实创建了视图并添加了它们,那么您仍然遇到问题,因为您没有通过调用addView
方法为eated
和eatedtext
指定布局参数
<强>解决方案强>
我认为你需要写一些类似的东西:
ImageView eated = (ImageView) findViewById(R.id.eated_image);
eated.setVisibility(View.VISIBLE);
eated.setImageResource(R.drawable.after_cookie);
TextView eatedText = (TextView) findViewById(R.id.status_text_view);
eatedText.setVisibility(View.VISIBLE);
eatedText.setText("i'm so full");
在您的xml中,您需要为这些视图设置属性android:visibility="gone"
或android:visibility="invisible"
答案 1 :(得分:0)
我想,你已经在layout-XML中定义了TextView。如果是这样,您不必创建新的TextView
对象,而是改变现有对象。
TextView eatedText = (TextView)findViewById(R.id.status_text_view);
eatedtext.setText("i'm so full");
答案 2 :(得分:0)
试试这个
public void eatCookie(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
LinearLayout linearLayout = new LinearLayout(this);
setContentView(linearLayout);
linearLayout.setOrientation(LinearLayout.VERTICAL);
ImageView eated = new ImageView(this);
TextView eatedtext = new TextView(this);
eated.setImageResource(R.drawable.after_cookie);
eatedtext.setText("i'm so full");
linearLayout.addView(eated);
linearLayout.addView(eatedtext);
// TODO: Find a reference to the TextView in the layout. Change the text.
}
答案 3 :(得分:0)
请阅读评论
if="[[ifIsOfType(abc.status,'final'.toUpperCase())]].
将您的XML文件 public void eatCookie(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ImageView eated = (ImageView)findViewById(R.id.android_cookie_image_view);
eated.setImageResource(R.drawable.after_cookie);
TextView eatedText = (TextView)findViewById(R.id.status_text_view);
eatedtext.setText("i'm so full");
}
更新为android:layout_height="0dp"
android:layout_height="wrap_content"
答案 4 :(得分:0)
感谢帮助大家。
这是正确的答案,正如您所提到的,您不需要在xml代码文件中识别标识的对象,例如ImageView
和TextView
,因此正确的代码将是
public void eatCookie(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ImageView image = (ImageView)findViewById(R.id.android_cookie_image_view);
image.setImageResource(R.drawable.after_cookie);
TextView text = (TextView) findViewById(R.id.status_text_view);
text.setText("i'm so full");
// TODO: Find a reference to the TextView in the layout. Change the text.
}