0

我要疯了。

我没有找到任何可行的解决方案(从stackoverflow尝试了一些)

场景(这是已经完成的实际截图):

在此处输入图像描述

我有一个 Activity,它有一个 View 作为他的属性。

此视图通过 View.addView(myView) 添加另一个视图。

我现在想在 myView 中添加一个 Button(具体来说:在 MotionEvent.ACTION_UP 之后,该按钮应该出现在右下角(这将启动机器人来驱动轨道))

这是我的代码的快捷方式:

public class ModeRouting extends View {
public ModeRouting(Context context) {
    super(context);
Button asuroStartButton = new Button(context) //does not work
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    int actionevent = event.getAction();
    if (actionevent == MotionEvent.ACTION_UP
            || actionevent == MotionEvent.ACTION_CANCEL) {
asuroStartButton.visible=true;
view.add(asuroStartButton);
    }
    return true;
}
}

和我的活动:

//in constructor
contentView = (FrameLayout) findViewById(R.id.content);
onClickListenerFacade(routingMode, route);

//this removes all views from stack and places the new one on the view
private void onClickListenerFacade(View v, final View target) {
    v.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            contentView.removeAllViews();
            contentView.setBackgroundColor(0xff000000);
            contentView.addView(target);
            modeSelectorAnimation();
        }
    });
}

我试图在我的 mainactivity.xml 中创建一个按钮并在我的 mainactivity 中实例化。

我在这里遗漏了一些观点,但我不确定是哪个。

由于我的视图是纯动态的(没有 layout.xml),我认为我不应该使用 layout.xml(也许那是我的思维障碍),而是动态地设置按钮属性。

任何提示表示赞赏!

4

2 回答 2

1

您想扩展 ViewGroup 而不仅仅是一个视图(LinearLayout、RelativeLayout、FrameLayout 等)——它们会为您处理子视图。

于 2013-02-27T19:05:04.393 回答
0

我想也许你需要刷新整个视图/活动。尝试在 onResume 方法中执行此操作,也许这会有所帮助。但是由于您不使用 layout.xml,我不确定这是否对您有很大帮助..

@Override
protected void onResume(){
super.onResume();
setContentView(R.layout.activity_main);
}
于 2013-02-27T19:05:59.457 回答