我在Fragment中放了一個listview然后在Adapter中為每個item設定了監聽 ,然后想在監聽中用intent啟動新一個新的activity, 可是Intent intent =new Intent(context,CotDe.class);這一句總感覺不對,那個context怎么獲得啊?
uj5u.com熱心網友回復:
context可以在你new Adapter的時候作為建構式的引數傳遞進去,不過如果你要startActivity就需要作為activity傳遞進去了uj5u.com熱心網友回復:
fragment有一個方法,getActivity().可以獲得context,然后給setonitemclick用。也就是說,你方法里面的context可以直接替換為getActivity().uj5u.com熱心網友回復:
new Adapter(Context context)uj5u.com熱心網友回復:
adapter里面 用context.startActivity(intent);uj5u.com熱心網友回復:
記住,作為方便,以后開發要在adapter里面傳入context,即使你用不到。uj5u.com熱心網友回復:
直接this不可以嗎uj5u.com熱心網友回復:
public void onClick(View v) {
//點擊條目彈出提示框
Toast.makeText(v.getContext(),
"你點擊的字母是:"+holder.textView.getText(),Toast.LENGTH_LONG).show();
//點擊條目進行跳轉到另外一個Activity
Intent intent=new Intent(v.getContext(),AnotherActivity.class);
v.getContext().startActivity(intent);
}
});
uj5u.com熱心網友回復:
在Adapter宣告變數的時候后宣告全域變數一個背景關系 Context context 。
配接器在建構式里傳一個背景關系context 。
public void myadapter(Context context,List<T>list){
this.comtext=context
};
跳轉:
Intent i=new Intent(context,Acy.class);
context.startActivity(intent);
uj5u.com熱心網友回復:
public class ViewHolder extends RecyclerView.ViewHolder {Createing_meeting_item_View item_view;
public ViewHolder(@NonNull View view) {
super(view);
item_view = view.findViewById(R.id.item_view);
item_view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, Meeting_Activity.class);
mContext.startActivity(intent);
}
});
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/54626.html
標籤:Android
上一篇:Android,跪求答案
