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希望能有所帮助