【发布时间】:2014-09-21 11:43:49
【问题描述】:
我在此方法中传递活动上下文时遇到问题
private void registerClicksOnParents(ListView listView, final Dialog d, final
ImageButton btn, final ChildAndActivityDataClass currentChild) {
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
d.dismiss();
btn.setImageResource(R.drawable.odebrany);
btn.setEnabled(false);
currentChild.setOdbiorDzieckaIdOfState(App_class.odebrane);
SingleInfoToServer singleInfoToServer = SingleInfoToServer(currentChild.getIdOfChild(),
currentChild.getOdbiorDzieckaIdOfActivity(),
currentChild.getOdbiorDzieckaIdOfState(),
context);
}
});
}
当我在onItemClick 中调用此方法时,我无法使用getActivity,我尝试使用MainScreen.this,但没有任何效果。我尝试以这种方式在 Fragment onCreate 方法中获取上下文:
public class Aktywnosci_Fragment extends Fragment {
Context context ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = getActivity();
}
但它仍然显示相同的The method SingleInfoToServer(int, int, int, Context) is undefined for the type new AdapterView.OnItemClickListener(){}
这个方法构造函数是这样的
public SingleInfoToServer( int idOfChild, int idOfActivity, int idOfState, Context context)
{
this.context = context;
this.idOfChild = idOfChild;
this.idOfActivity = idOfActivity;
this.idOfState = idOfState;
}
所以一切都应该正常
按照你在 cmets 中所说的进行编辑,我尝试了这个
private void registerClicksOnParents(ListView listView, final Dialog d, final ImageButton btn, final ChildAndActivityDataClass currentChild, final Activity activity) { listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
d.dismiss();
btn.setImageResource(R.drawable.odebrany);
btn.setEnabled(false);
currentChild.setOdbiorDzieckaIdOfState(App_class.odebrane);
SingleInfoToServer singleInfoToServer = SingleInfoToServer(currentChild.getIdOfChild(),
currentChild.getOdbiorDzieckaIdOfActivity(),
currentChild.getOdbiorDzieckaIdOfState(),
view.getContext());
}
} );
}
没有任何变化
【问题讨论】:
-
使用
view.getContext()
标签: android android-activity android-fragments