在视图中添加一个按钮
我对此很感兴趣。在视图中添加一个按钮
我没有找到任何有效的解决方案(试图从计算器等等)
方案(这是一个实际的截图什么已经完成):
我有了一个活动视图作为他的属性。
此视图增加经由View.addView(MyView的)另一视图。
我现在想要一个按钮添加到MyView的(要具体:后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(也许这是我的思维*),而是动态地设置按钮属性。
任何提示表示赞赏!
你想扩展ViewGroup而不是一个视图(LinearLayout,RelativeLayout,FrameLayout等) - 它们为你处理子视图。
谢谢。现在我得到了this.addView(按钮)功能。 唯一的问题是该按钮不会出现。 我确实设置了width/heigth 200,200和visibility = true,而且还是frontof()。仍然不可见。要继续尝试 – Wandang 2013-02-27 19:15:57
你延伸了什么?你很可能想要扩展RelativeLayout。在这种情况下,您需要调用setLayoutParams()传递一个RelativeLayout.LayoutParams来指定您希望视图所在的位置。 – 2013-02-27 21:42:39
哦,那是问题所在。我从ViewGroup扩展。要明天解决,谢谢 – Wandang 2013-02-28 22:48:36
我想也许你需要刷新整个视图/活动。尝试在onResume方法中做到这一点,也许这有助于。但是,因为您不使用layout.xml,我不确定这是否对您有很大帮助。
@Override
protected void onResume(){
super.onResume();
setContentView(R.layout.activity_main);
}
谢谢你的努力,但我不认为这有帮助。使用您的建议将与从我的活动中删除视图相同。 – Wandang 2013-02-27 19:17:49
那么问题是什么? – Simon 2013-02-27 19:00:18
我无法实例化一个按钮,也不能添加一个按钮。 我需要一个静态xml来添加一个按钮,我需要在哪里实例化(mainactivity?)。不会静态xml覆盖/销毁动态内容(例如使用setContentView(R.layout.xy)会破坏我的轨道吗?) – Wandang 2013-02-27 19:01:35
您不需要一个静态xml按钮。你可以使用类似于:Button sampleButton = new Button(context); – lokoko 2013-02-27 19:02:29