当用户单击在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);
}
}
提前多谢!
最佳答案
更改:
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可能更好,这样topbarview在您想将meeractivity以外的东西用作目标时会更具可重用性。没什么大不了的。