public class TitleLayout extends LinearLayout{
public TitleLayout(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.title, this);
Button titleButton2 = (Button)findViewById(R.id.title_button2);
titleButton2.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {
Intent intent = new Intent(TitleLayout.this,Setting.class);
startActivity(intent);
}
});
}
}
以上为错误代码,报错为:
The constructor Intent(TitleLayout, Class<Setting>) is undefined;
The method startActivity(Intent) is undefined for the type new View.OnClickListener(){};
问题就出在上下文上,还有就是 startActivity()是Context里的方法。
修改后的代码:
public class TitleLayout extends LinearLayout{
public TitleLayout(final Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.title, this);
Button titleButton2 = (Button)findViewById(R.id.title_button2);
titleButton2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context,Setting.class);
context.startActivity(intent);
}
});
}
}