我正试图在listview中使用一个项目按钮,并告知活动按钮已被单击我有一个异常:java.lang.ClassCastException:com.nhippye.curve.curve不能强制转换为com.nhippee.curve.roadListPackage.roadListMainActivity
//public class roadListAdapter extends ArrayAdapter<roadListItem> implements Filterable
private Context mContext;
public roadListAdapter(Context context, List<roadListItem> roads)
{
super(context, R.layout.road_row_item, roads);
this.roads = roads;
this.context = context;
filterList = new ArrayList<>();
this.filterList.addAll(roads);
this.mContext = context;
}
Button ButtonViewRoadListItemMenu = (Button) view.findViewById(R.id.imageButtonRoadListItemMenu);
ButtonViewRoadListItemMenu.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View view)
{
((roadListMainActivity)mContext).myAction(); // CLASS EXCEPTION
}
});
//public class roadListMainActivity extends AppCompatActivity implements View.OnFocusChangeListener, SearchView.OnQueryTextListener
{ //...
public void myAction()
{
// do something here
Log.d("$$myAction ", "myAction");
}
}
您可以从单击的视图中获取活动上下文:
((roadListMainActivity) view.getContext()).myAction();
此外,我建议您遵循命名标准,并为其实例使用大写类名和小写名称。