Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在自定义适配器中写入有效上下文_Android_Android Fragments_Adapter - Fatal编程技术网

Android 如何在自定义适配器中写入有效上下文

Android 如何在自定义适配器中写入有效上下文,android,android-fragments,adapter,Android,Android Fragments,Adapter,我使用一个定制的适配器向Sq lite传递数据。我需要在适配器类的以下方法中传递片段的引用。如何才能做到这一点? **要编写什么来代替“FragmentGroups.getActivity()” public void Set\u refereash\u Data(){ data.clear(); db=new SendJobDataBase(new FragmentGroups.getActivity()); ArrayList contact_array_from_db=db.Get_Con

我使用一个定制的适配器向Sq lite传递数据。我需要在适配器类的以下方法中传递片段的引用。如何才能做到这一点? **要编写什么来代替“FragmentGroups.getActivity()”

public void Set\u refereash\u Data(){
data.clear();
db=new SendJobDataBase(new FragmentGroups.getActivity());
ArrayList contact_array_from_db=db.Get_Contacts();
对于(int i=0;i
GroupAdapter.java:

 package com.sunmobile.navigationdrawer;

    import java.util.ArrayList;
    import com.sunmobileappnow.mobileappnow.R;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.View.OnClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;

      public class GroupAdapter extends ArrayAdapter<member> {


        GroupAdapter gdb;
        Activity activity;
        int layoutResourceId;
        member user;
        ArrayList<member> data = new ArrayList<member>();
        ListView l1;
        SendJobDataBase db;

     public GroupAdapter(Activity act, int layoutResourceId,
                ArrayList<member> data) {
                super(act, layoutResourceId, data);
                this.layoutResourceId = layoutResourceId;
                this.activity = act;
                this.data = data;
                notifyDataSetChanged();
            }
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = convertView;
            MemberHolder holder = null;

            if (row == null) {
            LayoutInflater inflater = LayoutInflater.from(activity);

            row = inflater.inflate(layoutResourceId, parent, false);
            holder = new MemberHolder();
            holder.name = (TextView) row.findViewById(R.id.user_name_txt);
            holder.delete = (Button) row.findViewById(R.id.btn_delete);
            row.setTag(holder);
           } else {
        holder = (MemberHolder) row.getTag();
            }
           user = data.get(position);

        holder.name.setText(user.getName());
        holder.delete.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(final View v) {

                AlertDialog.Builder adb = new AlertDialog.Builder(activity);
                adb.setTitle("Delete?");
                adb.setMessage("Are you sure you want to delete ");
                final int user_id = Integer.parseInt(v.getTag().toString());
                adb.setNegativeButton("Cancel", null);
                adb.setPositiveButton("Ok",
                    new AlertDialog.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog,
                        int which) {
                        // MyDataObject.remove(positionToRemove);
                        SendJobDataBase dBHandler = new SendJobDataBase(
                            activity.getApplicationContext());
                       dBHandler.Delete_Contact(user_id);
                       GroupAdapter.this.onResume();

                    }
                    });    


                adb.show();
            }

            });   
            return row;

        }


      public void Set_Referash_Data() {
                data.clear();
                db = new SendJobDataBase(FragmentGroups.this.getActivity());
                ArrayList<member> contact_array_from_db = db.Get_Contacts();

                for (int i = 0; i < contact_array_from_db.size(); i++) {

                    int tidno = contact_array_from_db.get(i).getID();
                    String name = contact_array_from_db.get(i).getName();
                                data.add(cnt);
                }
                db.close();
                gdb = new GroupAdapter(FragmentGroups.this.getActivity(), R.layout.listrow_item, data);
                l1.setAdapter(gdb);
                gdb.notifyDataSetChanged();
                }

        class MemberHolder {
            TextView name;
            Button delete;
        }

        }
package com.sunmobile.navigationdrawer;
导入java.util.ArrayList;
导入com.sunmobileapnow.mobileappnow.R;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.content.Context;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.view.view.OnClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.TextView;
公共类GroupAdapter扩展了ArrayAdapter{
分组适配器gdb;
活动;
国际布局资源;
会员用户;
ArrayList数据=新的ArrayList();
列表视图l1;
数据库数据库数据库;
公共组适配器(活动法案,内部布局资源ID,
ArrayList数据){
超级(act、布局资源、数据);
this.layoutResourceId=layoutResourceId;
这个活动=行动;
这个数据=数据;
notifyDataSetChanged();
}
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
MemberHolder=null;
if(行==null){
LayoutFlater充气机=LayoutFlater.from(活动);
行=充气机。充气(layoutResourceId,父级,false);
holder=新成员holder();
holder.name=(TextView)row.findViewById(R.id.user\u name\u txt);
holder.delete=(按钮)row.findViewById(R.id.btn_delete);
row.setTag(支架);
}否则{
holder=(MemberHolder)行。getTag();
}
user=data.get(位置);
holder.name.setText(user.getName());
holder.delete.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(最终视图v){
AlertDialog.Builder adb=新建AlertDialog.Builder(活动);
adb.setTitle(“删除?”);
adb.setMessage(“您确定要删除吗”);
final int user_id=Integer.parseInt(v.getTag().toString());
adb.setNegativeButton(“取消”,空);
adb.setPositiveButton(“确定”,
新建AlertDialog.OnClickListener(){
@凌驾
公共void onClick(对话框接口对话框,
int(其中){
//MyDataObject.remove(位置删除);
SendJobDataBase dBHandler=新建SendJobDataBase(
activity.getApplicationContext());
删除联系人(用户id);
GroupAdapter.this.onResume();
}
});    
adb.show();
}
});   
返回行;
}
公共无效集\u引用\u数据(){
data.clear();
db=新的SendJobDataBase(FragmentGroups.this.getActivity());
ArrayList contact_array_from_db=db.Get_Contacts();
对于(int i=0;i
碎片组:

package com.sunmobile.navigationdrawer;
import java.util.ArrayList;
import java.util.List;

import android.app.Fragment;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


import com.sunmobileappnow.mobileappnow.PasswordDB;
import com.sunmobileappnow.mobileappnow.R;

public class FragmentGroups extends Fragment {

     SendJobDataBase db; 
     Cursor cursor;
     ArrayList<member> membr,membr2;
     ListView list1 ;
     ListView list2 ;
     Button group1;
     Button group2;
     GroupAdapter groupadapter;


    public FragmentGroups(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.group_fragment, container, false);

        group1 = (Button) rootView.findViewById(R.id.Gp1);
        group2 = (Button) rootView.findViewById(R.id.Gp2);


    list1 = (ListView) rootView.findViewById(R.id.list1);

     this.db = new SendJobDataBase(getActivity());
    membr=db.getMembersList();  

        groupadapter= new GroupAdapter(this.getActivity(),R.layout.listrow_item ,membr);
        list1.setAdapter( groupadapter);     




   list2 = (ListView) rootView.findViewById(R.id.list2);
   membr2=db.getMembersList2(); 
    groupadapter= new GroupAdapter(this.getActivity(),R.layout.listrow_item ,membr2);
    list2.setAdapter( groupadapter);     



      group1.setOnClickListener(new OnClickListener() {

    @Override
       public void onClick(View v) {

        list1.setVisibility(View.VISIBLE);
        list2.setVisibility(View.INVISIBLE);

    }
});


group2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        list1.setVisibility(View.GONE);
        list2.setVisibility(View.VISIBLE);

    }
});
return rootView;

    }       

}
package com.sunmobile.navigationdrawer;
导入java.util.ArrayList;
导入java.util.List;
导入android.app.Fragment;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.view.view.OnClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.sunmobileappnow.mobileappnow.PasswordDB;
导入com.sunmobileapnow.mobileappnow.R;
公共类FragmentGroups扩展了Fragment{
package com.sunmobile.navigationdrawer;
import java.util.ArrayList;
import java.util.List;

import android.app.Fragment;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


import com.sunmobileappnow.mobileappnow.PasswordDB;
import com.sunmobileappnow.mobileappnow.R;

public class FragmentGroups extends Fragment {

     SendJobDataBase db; 
     Cursor cursor;
     ArrayList<member> membr,membr2;
     ListView list1 ;
     ListView list2 ;
     Button group1;
     Button group2;
     GroupAdapter groupadapter;


    public FragmentGroups(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.group_fragment, container, false);

        group1 = (Button) rootView.findViewById(R.id.Gp1);
        group2 = (Button) rootView.findViewById(R.id.Gp2);


    list1 = (ListView) rootView.findViewById(R.id.list1);

     this.db = new SendJobDataBase(getActivity());
    membr=db.getMembersList();  

        groupadapter= new GroupAdapter(this.getActivity(),R.layout.listrow_item ,membr);
        list1.setAdapter( groupadapter);     




   list2 = (ListView) rootView.findViewById(R.id.list2);
   membr2=db.getMembersList2(); 
    groupadapter= new GroupAdapter(this.getActivity(),R.layout.listrow_item ,membr2);
    list2.setAdapter( groupadapter);     



      group1.setOnClickListener(new OnClickListener() {

    @Override
       public void onClick(View v) {

        list1.setVisibility(View.VISIBLE);
        list2.setVisibility(View.INVISIBLE);

    }
});


group2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        list1.setVisibility(View.GONE);
        list2.setVisibility(View.VISIBLE);

    }
});
return rootView;

    }       

}
FragmentGroups.this.getActivity()
FragmentGroups.getActivity() 
  public void Set_Referash_Data() {
            data.clear();
            db = new SendJobDataBase(FragmentGroups.this.getActivity());
            ArrayList<member> contact_array_from_db = db.Get_Contacts();

            for (int i = 0; i < contact_array_from_db.size(); i++) {

                int tidno = contact_array_from_db.get(i).getID();
                String name = contact_array_from_db.get(i).getName();
                            data.add(cnt);
            }
            db.close();
            gdb = new GroupAdapter(FragmentGroups.this.getActivity(), R.layout.listrow_item, data);
            l1.setAdapter(gdb);
            gdb.notifyDataSetChanged();
            }