我在网格布局适配器中有一个按钮,我想在getView方法中设置OnClickListener来启动活动, 但是当我点击它时,我有Null Pointer Exception。 这是我的代码:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
convertView = mInflater.inflate(mViewResourceId, null);
LoaderImageView thumnail=new LoaderImageView(mCon, "");
LinearLayout thum=(LinearLayout)convertView.findViewById(R.id.thumn);
thumnail.setImageDrawable(mList.get(position).getPict());
thum.addView(thumnail);
TextView namaPro=(TextView)convertView.findViewById(R.id.namaPro);
namaPro.setText(mList.get(position).getNama());
/*Rate* Menyusul*/
Button view=(Button)convertView.findViewById(R.id.viewlist);
view.setId(position);
view.setOnClickListener(new onClick());
return convertView;
}
class onClick extends Activity implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(mCon, DetailProduct.class);
startActivity(i);
}
}
上面的代码有什么问题吗?
答案 0 :(得分:0)
在onclicklistener中尝试使用Context实例调用startActivity()。适配器本身不具有上下文。因此,您必须指定启动活动的上下文。
class onClick extends Activity implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(mCon, DetailProduct.class);
mCon.startActivity(i);
}
}