是否可以在onActivityResume
& {}中使用方法adapter
。致电startActivityForResult
?
答案 0 :(得分:84)
是。只需将活动的上下文传递给适配器构造函数中的适配器(此处存储为mContext)。 在getView中,只需调用
即可((Activity) mContext).startActivityForResult(intent,REQUEST_FOR_ACTIVITY_CODE);
答案 1 :(得分:6)
不一定要传递给适配器构造函数中的上下文。您可以从父ViewGroup获取上下文。 RecyclerView适配器的示例:
Context mContext;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
mContext = parent.getContext();
...
}
ListView BaseAdapter的示例
Context mContext;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
mContext = parent.getContext();
...
}
并在任何地方使用
((Activity) mContext).startActivityForResult(intent, REQUEST_FOR_ACTIVITY_CODE);
答案 2 :(得分:2)
课外活动...
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit_transform(df['ingredients_str'])
0 28560
1 26783
2 10595
3 38379
4 2798
Name: encoding, dtype: int64
小心!
仅将 MyActivity.this 从活动传递到适配器作为上下文。
仅通过 getActivity();从片段到适配器作为上下文。
答案 3 :(得分:0)
//First Do
public Activity context;
public int REQUEST_CODE = 111;
public Adapter(Activity context, Data data) {
this.context = context;
}
///Second Do
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, NextActivity.class);
context.startActivityForResult(intent, REQUEST_CODE);
}
});
}
如果遵循此代码,则无需每次-((Activity)context)-在.startActivityForResult(intent,REQUEST_CODE)之前; -在适配器中使用startActivityForResult时。