0

我想测试如何在 Android 上动态更改视图,而无需启动其他活动。

所以我写了这段代码,每当我同时实现 OnTouchListener 和 OnClickListener 时它就会崩溃,但如果我只使用其中一个,它工作得很好(尽管它没有做我想要做的事情)。

public class Test extends Activity implements OnTouchListener, OnClickListener {

ImageView image;
Button ret;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.displaytest);

    image = (ImageView) this.findViewById(R.id.image01);
    ret = (Button) this.findViewById(R.id.ret);

    image.setOnTouchListener(this);
    ret.setOnClickListener(this);
}

@Override
public boolean onTouch(View v, MotionEvent event) {

    int action = event.getAction();

    switch(action)
    {
    case MotionEvent.ACTION_DOWN:
        setContentView(R.layout.returnd);
        break;
    }

    return true;
}

@Override
public void onClick(View v) {

    setContentView(R.layout.displaytest);
}

}

基本上,我只想显示一张图片,当用户触摸它时,更改视图以显示一个按钮,让您返回主视图。

顺便说一句,我是 Android 新手,所以我认为这应该是一个非常蹩脚的错误。帮助将不胜感激。谢谢

4

3 回答 3

0

如果没有堆栈跟踪(logcat),您将不会得到任何高质量的答案。

顺便说一句:新布局=新活动(或片段)。 设置内容视图()

时期。

于 2013-07-04T19:29:48.123 回答
0

请删除 onTouch 和 onCLick 事件中的 setContentView() 方法。它会导致问题。您不能在活动中多次设置内容视图。您可以使用任何其他方法查看 ui 中的动态变化,例如更改 textVIew 中的文本、更改颜色或更改 imageview 中的图像等。

于 2013-07-04T19:27:48.797 回答
0

我不认为你可以setContentView像那样多次打电话。

您应该使按钮在布局中不可见,并在触摸图片时使其可见,而不是加载新布局。

于 2013-07-04T19:27:53.950 回答