我有一个包含3个按钮的自定义列表项。我想在点击一个按钮时显示一个祝酒词,但我对上下文有点失落。 这是我的代码:
public class ButtonAdapter extends ArrayAdapter<ButtonClass> {
public ButtonAdapter(Activity context, ArrayList<ButtonClass> buttonList) {
super(context, 0, buttonList);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View listItemView = convertView;
if(listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.button_list_item, parent, false);
}
ButtonClass currentButton = getItem(position);
Button btnOne = (Button) listItemView.findViewById(R.id.buttonOne);
btnOne.setText(currentButton.getBtnOneString());
btnOne.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View v) {
// doesn't recognize the getApplicationContext() method ?!
Toast toast = Toast.makeText(getApplicationContext(), "Msg to show up", Toast.LENGTH_SHORT).show();
}
}
);
// the same thing for the other two buttons ...
return listItemView;
}
有人可以帮助我吗?
答案 0 :(得分:2)
使用getContext()代替getApplicationContext()。
getContext()方法在ArrayAdapter类中可用。 getApplicationContext()课程中可以使用Activity。
答案 1 :(得分:1)
使用视图上下文:
btnOne.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Msg to show up", Toast.LENGTH_SHORT).show();
}
}
);