为什么接口适配器活动出现ClassException



我正试图在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();

此外,我建议您遵循命名标准,并为其实例使用大写类名和小写名称。

最新更新