在自定義控制元件中啟動一個活動時出現的undefin的錯誤問題
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);
}
});
}
}