Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 ListView侦听器不工作_Android_Sorting_Android Listview_Listview Adapter - Fatal编程技术网

Android ListView侦听器不工作

Android ListView侦听器不工作,android,sorting,android-listview,listview-adapter,Android,Sorting,Android Listview,Listview Adapter,我按类别对列表视图进行了排序,如下所示 popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub if(item.toString().equalsIgn

我按类别对列表视图进行了排序,如下所示

    popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {

    @Override
    public boolean onMenuItemClick(MenuItem item) {
        // TODO Auto-generated method stub

        if(item.toString().equalsIgnoreCase("Reported Date"))
        {
            SortByRepDateAdapter sortAdapter= new SortByRepDateAdapter(getActivity(), defList);             
            listDefect.setAdapter(sortAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Unit"))
        {
            sortByUnitAdapter sortByUnitAdapter= new sortByUnitAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByUnitAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Block"))
        {
            SortByBlockAdapter sortByBlockAdapter= new SortByBlockAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByBlockAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Last Followup Date"))
        {
            SortByLastFDateAdapter sortByLastFDateAdapter= new SortByLastFDateAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByLastFDateAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Scope"))
        {
            SortByScopeAdapter sortByScopeAdapter= new SortByScopeAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByScopeAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Subcontractor"))
        {
            SortBySubConAdapter sortBySubconAdapter= new SortBySubConAdapter(getActivity(), defList);
            listDefect.setAdapter(sortBySubconAdapter);
        }

        Toast.makeText(getActivity(), "Sorted By "+
                  item.toString(),
                  Toast.LENGTH_LONG).show();
                return true;
    }
      });

          popupMenu.show();
      }
我根据菜单中的类别调用不同的适配器,对列表视图进行排序。 问题是对
listview
排序后,
listview.OnItemClickListener
不工作。 我想在单击每个
listView
行时进入新的详细信息活动。请帮帮我

这是我的密码

public class RectificationAct extends Fragment implements OnDataRetrieveComplete, OnItemClickListener{
protected static final String TAG = RectificationAct.class.getSimpleName();
private View view;
private Button btnSort;
private ListView listDefect;

private ListViewAdapter adapter;
private WebHelper webHelper;
private String projId;
ArrayList<DefectRecord> defList= new ArrayList<DefectRecord>();
private ArrayList<ListItem_Defect> listItems=new ArrayList<ListItem_Defect>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    webHelper = new WebHelper(this);
    projId= FragHelper.getSF(StaticHelper.PROJID, getActivity());
    Log.i(TAG,"projID=>"+projId);
    webHelper.getDefectRecord(projId);
    view= inflater.inflate(R.layout.frag_retification, container, false);
    listDefect=(ListView) view.findViewById(R.id.listView_main);
    listDefect.setOnItemClickListener(this);

    btnSort=(Button)view.findViewById(R.id.btnSort);
    btnSort.setOnClickListener(onSortListener);
    return view;
}
final OnClickListener onSortListener= new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        showPopupMenu(v);
    }
};

private void showPopupMenu(View v){
       PopupMenu popupMenu = new PopupMenu(getActivity(), v);
          popupMenu.getMenuInflater().inflate(R.menu.popup_sort, popupMenu.getMenu());

          popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {

    @Override
    public boolean onMenuItemClick(MenuItem item) {
        // TODO Auto-generated method stub

        if(item.toString().equalsIgnoreCase("Reported Date"))
        {
            SortByRepDateAdapter sortAdapter= new SortByRepDateAdapter(getActivity(), defList);             
            listDefect.setAdapter(sortAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Unit"))
        {
            sortByUnitAdapter sortByUnitAdapter= new sortByUnitAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByUnitAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Block"))
        {
            SortByBlockAdapter sortByBlockAdapter= new SortByBlockAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByBlockAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Last Followup Date"))
        {
            SortByLastFDateAdapter sortByLastFDateAdapter= new SortByLastFDateAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByLastFDateAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Scope"))
        {
            SortByScopeAdapter sortByScopeAdapter= new SortByScopeAdapter(getActivity(), defList);
            listDefect.setAdapter(sortByScopeAdapter);
        }
        else if(item.toString().equalsIgnoreCase("Subcontractor"))
        {
            SortBySubConAdapter sortBySubconAdapter= new SortBySubConAdapter(getActivity(), defList);
            listDefect.setAdapter(sortBySubconAdapter);
        }

        Toast.makeText(getActivity(), "Sorted By "+
                  item.toString(),
                  Toast.LENGTH_LONG).show();
                return true;
    }
      });

          popupMenu.show();
      }

@Override
public void onDataTaken(ArrayList<Block_Unit_Level>lvl_unt, ArrayList<DefectRecord> d_arr) {
    listItems.clear();
    defList=d_arr;
    /*for (Block_Unit_Level uLvl_Obj : lvl_unt) {
        listItems.add(new Block_Unit_Level(uLvl_Obj.get("block"), uLvl_Obj.get("level"), uLvl_Obj.get("unit")));*/

        for (DefectRecord defect : d_arr) 
        {

            /*if(uLvl_Obj.get("level").equalsIgnoreCase(defect.get("level")) && uLvl_Obj.get("unit").equalsIgnoreCase(defect.get("unit")))
            {*/

    //listItems.add(new Defect(defect.get("id"), defect.get("unit"), defect.get("level"), defect.get("scope_name"), defect.get("priority"), defect.get("description")));
                listItems.add(new DefectRecord(defect.get("unit"), defect.get("level"), defect.get("block"),
                        defect.get("created_date"), defect.get("sub_con"), defect.get("scope"), defect.get("followup"), 
                        defect.get("followup_date")));
            //}

        }
    //}
    adapter = new ListViewAdapter(getActivity(), listItems);
    listDefect.setAdapter(adapter);

}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==StaticHelper.requestCode_Rect)
    {
        CommunicationHelper.update_in_photo_upload(getActivity());
        refreshView();
    }
}
public void refreshView()
{
    webHelper.getDefectRecord(projId);
}


@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
    // TODO Auto-generated method stub
    Defect item = (Defect)listItems.get(position);
    String id=item.get("id");
    Intent intent = new Intent (getActivity(), Rectification_DetailAct.class);
    Bundle b=new Bundle();
    b.putString("defect_id", id);
    intent.putExtras(b);
    startActivityForResult(intent, StaticHelper.requestCode_Rect);
}}
公共类矫正法案扩展了OnDataRetrieveComplete、OnItemClickListener的片段实现{
受保护的静态最终字符串标记=RectificationAct.class.getSimpleName();
私人视野;
专用按钮传感器;
私有ListView listDefect;
私有ListViewAdapter;
私人网络助手;
私有字符串项目;
ArrayList defList=新建ArrayList();
private ArrayList listItems=new ArrayList();
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//TODO自动生成的方法存根
webHelper=新的webHelper(此);
projId=FragHelper.getSF(StaticHelper.projId,getActivity());
Log.i(标记“projID=>”+projID);
webHelper.getDefectRecord(projId);
视图=充气机。充气(R.layout.frag_,容器,假);
listDefect=(ListView)view.findViewById(R.id.ListView\u main);
setOnItemClickListener(this);
bSensor=(按钮)view.findViewById(R.id.bSensor);
bSensor.setOnClickListener(onSortListener);
返回视图;
}
final OnClickListener onSortListener=新OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
显示弹出菜单(v);
}
};
私有void显示弹出菜单(视图v){
PopupMenu PopupMenu=新的PopupMenu(getActivity(),v);
充气(R.menu.popup\u排序,popupMenu.getMenu());
setOnMenuItemClickListener(新的popupMenu.OnMenuItemClickListener(){
@凌驾
公共布尔onMenuItemClick(菜单项){
//TODO自动生成的方法存根
if(item.toString().equalsIgnoreCase(“报告日期”))
{
SortByRepDateAdapter sortAdapter=新的SortByRepDateAdapter(getActivity(),defList);
setAdapter(sortAdapter);
}
else if(item.toString().equalsIgnoreCase(“单位”))
{
sortByUnitAdapter sortByUnitAdapter=新的sortByUnitAdapter(getActivity(),defList);
setAdapter(sortByUnitAdapter);
}
else if(item.toString().equalsIgnoreCase(“块”))
{
SortByBlockAdapter SortByBlockAdapter=新的SortByBlockAdapter(getActivity(),defList);
setAdapter(sortByBlockAdapter);
}
else if(item.toString().equalsIgnoreCase(“最后跟进日期”))
{
SortByLastFDateAdapter SortByLastFDateAdapter=新的SortByLastFDateAdapter(getActivity(),defList);
setAdapter(sortByLastFDateAdapter);
}
else if(item.toString().equalsIgnoreCase(“范围”))
{
SortByScopeAdapter SortByScopeAdapter=新的SortByScopeAdapter(getActivity(),defList);
setAdapter(sortByScopeAdapter);
}
else if(item.toString().equalsIgnoreCase(“分包商”))
{
SortBySubConAdapter SortBySubConAdapter=新的SortBySubConAdapter(getActivity(),defList);
setAdapter(sortBySubconAdapter);
}
Toast.makeText(getActivity(),“排序依据”+
item.toString(),
Toast.LENGTH_LONG).show();
返回true;
}
});
show();
}
@凌驾
公共无效OnDatatake(ArrayListVl____________________________________r){
listItems.clear();
defList=d_arr;
/*用于(区块单元级uLvl对象:lvl unt){
列表项。添加(新区块单位层级(uLvl_Obj.get(“区块”)、uLvl_Obj.get(“层级”)、uLvl_Obj.get(“单元”)*/
用于(缺陷记录缺陷:d_arr)
{
/*if(uLvl_Obj.get(“level”).equalsIgnoreCase(defect.get(“level”)&&uLvl_Obj.get(“unit”).equalsIgnoreCase(defect.get(“unit”))
{*/
//添加(新缺陷(缺陷。获取(“id”)、缺陷。获取(“单位”)、缺陷。获取(“级别”)、缺陷。获取(“范围名称”)、缺陷。获取(“优先级”)、缺陷。获取(“说明”));
列表项。添加(新缺陷记录(缺陷。获取(“单位”)、缺陷。获取(“级别”)、缺陷。获取(“块”),
缺陷。获取(“创建日期”)、缺陷。获取(“子合同”)、缺陷。获取(“范围”)、缺陷。获取(“跟进”),
缺陷。获取(“跟进日期”);
//}
}
//}
适配器=新的ListViewAdapter(getActivity(),listItems);
setAdapter(适配器);
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==StaticHelper.requestCode_Rect)
{
CommunicationHelper.update_in_photo_upload(getActivity());
刷新视图();
}
}
公共视图()
{
webHelper.getDefectRecord(projId);
}
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
//TODO自动生成的方法存根
缺陷项=(缺陷)listItems.get(位置);
字符串id=item.get(“id”);
Intent Intent=新意图(getActivity(),correction\u DetailAct.class);
Bundle b=新Bundle();
b、 putString(“缺陷id”,id);
意向.附加条款(b);
startActivityForResult(intent,StaticHelper.requestCode_Rect);
}}

尝试ListFrament而不是Fragment希望能有所帮助