如何在android中从基本适配器调用getFragmentManager
在我的应用程序中,我使用如何在android中从基本适配器调用getFragmentManager,android,nullpointerexception,fragment,Android,Nullpointerexception,Fragment,在我的应用程序中,我使用base adapter在fragment类中填充列表视图。在这里,我想通过单击base adapter中的按钮调用另一个片段。我做了一些事情,但由于片段管理器的原因,它显示了nullpointer异常 有谁能告诉我如何在android中从base adapter调用fragment manager 这是我的基本适配器中的代码 package com.adapter.sales; import java.util.List; import android.annota
base adapter
在fragment类中填充列表视图。在这里,我想通过单击base adapter中的按钮调用另一个片段。我做了一些事情,但由于片段管理器的原因,它显示了nullpointer异常
有谁能告诉我如何在android中从base adapter
调用fragment manager
这是我的基本适配器中的代码
package com.adapter.sales;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.lotus.com.androidmis.R;
import android.lotus.com.androidmis.Sales;
import android.lotus.com.androidmis.Salesteam;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.lotus.mis.modle.UserDetails;
public class Emp_Spinner_Adapter extends BaseAdapter {
Context context;
List<UserDetails> objects;
String Flaglist = "3";
FragmentManager fragment;
public Emp_Spinner_Adapter(Context context, int resource,
List<UserDetails> objects) {
this.context = context;
this.objects = objects;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return objects.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return objects.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@SuppressLint("ResourceAsColor")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View Row = LayoutInflater.from(context).inflate(
R.layout.layout_adapter_sales_team_members, null);
TextView txt_item = (TextView) Row.findViewById(R.id.txt_item);
ImageView img_count = (ImageView) Row.findViewById(R.id.img_count);
ImageView details_sales = (ImageView)Row.findViewById(R.id.img_details_sales);
final UserDetails UserDetails_item = (UserDetails) objects
.get(position);
txt_item.setText(" " + UserDetails_item.getUserName());
final int temp_count = Integer
.valueOf(UserDetails_item.GetWorkStatus());
if (temp_count > 0) {
img_count.setImageResource(R.drawable.ic_lotus_team);
img_count.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = UserDetails_item.getUserName();
//Intent i = new Intent(context, Sales.class);
Bundle bundle = new Bundle();
bundle.putString("key_username",
UserDetails_item.getUserName());
bundle.putString("key_userid", UserDetails_item.getUserID());
bundle.putString("report_username", Salesteam.txt_levels
.getText().toString());
bundle.putString("key_FlagList", Flaglist);
Salesteam sales_team = new Salesteam();
sales_team.setArguments(bundle);
FragmentTransaction xfragmentTransaction = fragment.beginTransaction();
xfragmentTransaction.replace(R.id.containerView, sales_team).commit();
//i.putExtras(bundle);
//context.startActivity(i);
}
});
}
details_sales.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context,
Sales.class);
Bundle bundle = new Bundle();
bundle.putString("key_username", UserDetails_item.getUserName());
bundle.putString("key_userid", UserDetails_item.getUserID());
bundle.putString("report_username", Salesteam.txt_levels.getText().toString());
bundle.putString("key_FlagList", Flaglist);
Sales sales_fragment = new Sales();
sales_fragment.setArguments(bundle);
FragmentTransaction xfragmentTransaction = fragment.beginTransaction();
xfragmentTransaction.replace(R.id.containerView, sales_fragment).commit();
// bundle.putString("report_username", TempUser.getUserName());
// bundle.putString("report_user_id", TempUser.getUserID());
intent.putExtras(bundle);
context.startActivity(intent);
}
});
if (position % 2 == 1) {
Row.setBackgroundColor(Color.WHITE);
} else {
Row.setBackgroundColor(Color.LTGRAY);
}
img_count.setAlpha(255);
txt_item.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
return Row;
}
}
package com.adapter.sales;
导入java.util.List;
导入android.annotation.SuppressLint;
导入android.app.Activity;
导入android.content.Context;
导入android.content.Intent;
导入android.graphics.Color;
导入android.lotus.com.androidmis.R;
导入android.lotus.com.androidmis.Sales;
导入android.lotus.com.androidmis.Salesteam;
导入android.os.Bundle;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentTransaction;
导入android.util.TypedValue;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
导入com.lotus.mis.modle.UserDetails;
公共类Emp_微调器_适配器扩展BaseAdapter{
语境;
列出对象;
字符串Flaglist=“3”;
碎片;
公共Emp_微调器_适配器(上下文、int资源、,
列出对象){
this.context=上下文;
this.objects=对象;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回objects.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回对象。获取(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@SuppressLint(“资源色”)
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
查看行=LayoutInflater.from(上下文)。充气(
R.layout.layout\适配器\销售\团队\成员,空);
TextView txt_项=(TextView)Row.findViewById(R.id.txt_项);
ImageView img_计数=(ImageView)Row.findViewById(R.id.img_计数);
ImageView详细信息\销售=(ImageView)行.findViewById(R.id.img\详细信息\销售);
final UserDetails UserDetails\u item=(UserDetails)对象
.获得(职位);
txt_item.setText(“+UserDetails_item.getUserName());
最终int temp_计数=整数
.valueOf(UserDetails_item.GetWorkStatus());
如果(温度计数>0){
img_count.setImageResource(R.drawable.ic_lotus_团队);
img_count.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串username=UserDetails_item.getUserName();
//意图i=新意图(上下文、Sales.class);
Bundle=新Bundle();
bundle.putString(“key\u用户名”,
UserDetails_item.getUserName());
bundle.putString(“key_userid”,UserDetails_item.getUserID());
bundle.putString(“报告\用户名”,Salesteam.txt \级别
.getText().toString());
bundle.putString(“key_FlagList”,FlagList);
Salesteam sales_team=新Salesteam();
销售团队设置参数(捆绑);
FragmentTransaction xfragmentTransaction=fragment.beginTransaction();
xfragmentTransaction.replace(R.id.containerView,销售团队).commit();
//i、 putExtras(束);
//背景。起始触觉(i);
}
});
}
详细信息\u sales.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意图=新意图(上下文,
销售类);
Bundle=新Bundle();
bundle.putString(“key_username”,UserDetails_item.getUserName());
bundle.putString(“key_userid”,UserDetails_item.getUserID());
bundle.putString(“report_username”,Salesteam.txt_levels.getText().toString());
bundle.putString(“key_FlagList”,FlagList);
Sales_fragment=新销售额();
sales_fragment.setArguments(bundle);
FragmentTransaction xfragmentTransaction=fragment.beginTransaction();
替换(R.id.containerView,sales_fragment.commit();
//bundle.putString(“report_username”,TempUser.getUserName());
//bundle.putString(“report_user_id”,TempUser.getUserID());
意向。额外支出(捆绑);
背景。开始触觉(意图);
}
});
如果(位置%2==1){
行.背景色(颜色.白色);
}否则{
行.setBackgroundColor(Color.LTGRAY);
}
img_计数setAlpha(255);
txt_item.setTextSize(TypedValue.COMPLEX_UNIT_DIP,18);
返回行;
}
}
只需将活动引用放入适配器的构造函数中即可
Activity mActivity;
public Emp_Spinner_Adapter(Activity context, int resource,
List<UserDetails> objects) {
this.context = context;
this.objects = objects;
this.mActivity= context;
}
只需将活动引用放入适配器的构造函数中
Activity mActivity;
public Emp_Spinner_Adapter(Activity context, int resource,
List<UserDetails> objects) {
this.context = context;
this.objects = objects;
this.mActivity= context;
}
如果要在适配器内移动片段,请使用以下代码段
img_count.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
YourFragment fragment= new YourFragment ();
Bundle bundle = new Bundle();
bundle.putString("Id", "1");
fragment.setArguments(bundle);
FragmentManager fragmentManager = ((Activity) mContext).getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).addToBackStack(null).commit();
}
});
如果要在适配器内移动片段,请使用以下代码段
img_count.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
YourFragment fragment= new YourFragment ();
Bundle bundle = new Bundle();
bundle.putString("Id", "1");
fragment.setArguments(bundle);
FragmentManager fragmentManager = ((Activity) mContext).getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).addToBackStack(null).commit();
}
});
对于Emp_微调器_适配器构造函数,在其中传递另一个FragmentManager变量,并将预定义的FragmentManager变量初始化为:
public Emp_Spinner_Adapter(Context context, int resource,
List<UserDetails> objects,FragmentManager manager ) {
this.context = context;
this.objects = objects;
this.fragment=manager;
}
公共Emp_微调器_适配器(上下文、int资源、,
列出对象,碎片管理器(管理器){
this.context=上下文;
这个.ob