我在这个方法中传递 Activity 上下文有问题
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;
}
一切正常
按照你在我试过的评论中所说的进行编辑
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());
}
} );
}
没有任何变化
最佳答案
When I invoke this method in onItemClick I can't use getActivity, I try with, MainScreen.this but nothing works
您可以使用 onItemClick
中的 view.getContext()
获取它,而不是存储 Context 引用。
要创建 SingleInfoToServer
对象也可以使用 new
关键字:
SingleInfoToServer singleInfoToServer = new SingleInfoToServer(
currentChild.getIdOfChild(),
currentChild.getOdbiorDzieckaIdOfActivity(),
currentChild.getOdbiorDzieckaIdOfState(), view.getContext());
关于android - 在嵌套在 fragment 中的 AdapterView.OnItemClickListener(){} 中传递 Activity 上下文 - 该方法未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958835/