& callonActivityResume
内にメソッドを持つことは可能ですか?adapter
startActivityForResult
質問する
35740 次
4 に答える
102
はい。アクティビティのコンテキストをアダプターのコンストラクター (ここでは mContext として格納) でアダプターに渡すだけです。getView では、呼び出すだけです
((Activity) mContext).startActivityForResult(intent,REQUEST_FOR_ACTIVITY_CODE);
于 2012-08-09T12:03:08.443 に答える
9
必ずしもアダプターのコンストラクターでコンテキストを渡す必要はありません。親 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);
于 2015-11-23T04:39:05.277 に答える
2
//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); - Adapter で startActivityForResult を使用する場合。
于 2020-11-11T13:45:45.040 に答える