一旦用户点击在FrameLayout中呈现的按钮,我就需要开始一个新的活动。它呈现了我希望用户点击的按钮,但当然它现在没有做任何事情。
该类的代码如下,但我无法调用startActivity(intent)。
public class TopBarView extends FrameLayout {
private ImageView mLogoImage;
private Button mInfoButton;
public TopBarView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public TopBarView(Context context) {
super(context);
init();
}
public TopBarView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.top_bar, null);
mLogoImage = (ImageView) view.findViewById(R.id.imageLogo);
mInfoButton = (Button) view.findViewById(R.id.infoButton);
mInfoButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// We load & render the view for the information screen
// Intent i = new Intent();
// i.setClass(getContext(), MeerActivity.class);
// startActivity(i);
}
});
addView(view);
}
}
提前多多感谢!
答案 0 :(得分:4)
更改:
public void onClick(View v) {
// We load & render the view for the information screen
// Intent i = new Intent();
// i.setClass(getContext(), MeerActivity.class);
// startActivity(i);
}
致:
public void onClick(View v) {
// We load & render the view for the information screen
Intent i = new Intent();
i.setClass(v.getContext(), MeerActivity.class);
v.getContext().startActivity(i);
}
注意:可能最好通过您正在使用的活动分配onclicklistener,以便在您想要使用除MeerActivity之外的其他内容作为目标时,TopBarView可以更加重复使用。没什么大不了的。