我的代码存在语法错误,在“getView”中,我想为按钮“update”创建一个监听器,以移至另一个 Activity :
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater l = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View rowView = l.inflate(R.layout.temp, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.textView1);
ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1);
Button update = (Button) rowView.findViewById(R.id.button1);
// update.setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
//
// Intent redirect = new Intent(getApplicationContext(),Update.class);
// startActivity(redirect);
//
// }
// });
textView.setText(sa.get(position));
return rowView;
}
我试图解决有关“Intent ”的这些错误,但我失败了:(
甚至当我从“onClick”方法中删除这些语句时,问题也没有改变!
我导入了“Intent”库,如何解决?
最佳答案
如果适配器在其他文件中,则需要 Activity 上下文。
您需要将 Activity 上下文从 Activity 类传递到适配器构造函数。
http://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)startActivity
是您的 Activity 类别的一种方法。因此,您需要 Activity 上下文来启动 Activity 。
另外,请不要使用getApplicationContext
使用 Activity 上下文。
When to call activity context OR application context?
通过常用软件检查答案。
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent redirect = new Intent(context,Update.class);
context.startActivity(redirect);
}
});
关于android - 如何修复类型为new View.OnClickListener()语法错误的方法startActivity(Intent)未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17505969/