如何在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