java - setOnItemClickListener 在片段中的 ListView 上不起作用
问题描述
当我单击选项卡 Fragment 1 中的列表视图时,它将无法跳到下一个活动。我已经在课堂上设置了OnItemClickListener,但仍然无法正常工作。现在我的问题是当我单击列表视图时它不起作用。
public class TabFragment1_Staff extends Fragment {
ListView lsReport;
ArrayList<HashMap<String, String>> reportlist;
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
return inflater.inflate(R.layout.activity_tab_fragment1__staff, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
reportlist = new ArrayList<>();
lsReport = getActivity().findViewById(R.id.listReport);
loadReport();
lsReport.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getActivity(),AddStatusDialogWindow.class);
Bundle bundle = new Bundle();
Log.e("HANIS",reportlist.get(position).get("reportID"));
bundle.putString("reportID",reportlist.get(position).get("reportID"));
bundle.putString("fullName",reportlist.get(position).get("fullName"));
bundle.putString("icNum",reportlist.get(position).get("icNum"));
bundle.putString("phoneNum",reportlist.get(position).get("phoneNum"));
bundle.putString("Rdate",reportlist.get(position).get("Rdate"));
bundle.putString("Rtime",reportlist.get(position).get("Rtime"));
bundle.putString("timeName",reportlist.get(position).get("timeName"));
bundle.putString("typeVehicle",reportlist.get(position).get("typeVehicle"));
bundle.putString("registrationnum",reportlist.get(position).get("registrationnum"));
bundle.putString("location",reportlist.get(position).get("location"));
bundle.putString("brief",reportlist.get(position).get("brief"));
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}
tabFragment1.xml
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ListView
android:id="@+id/listReport"
android:layout_width="match_parent"
android:layout_height="300dp"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"/>
</LinearLayout>
</ScrollView>
加载报告类
class LoadReport extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
// Perform api call
}
@Override
protected void onPostExecute(String s) {
reportlist.clear();
// Parse api response and fill in reportlist var
ListAdapter adapter = new CustomList_StatusReport(
getActivity(), reportlist,
R.layout.activity_custom_list__status_report, new String[]
{"reportID","fullName","icNum","phoneNum"}, new int[]
{R.id.tvReport_ID,R.id.tvCompliantName,R.id.tvCompliantIC,R.id.tvCompliantPhone});
lsReport.setAdapter(adapter);
Toast.LENGTH_SHORT).show();
}
}
LoadReport loadReport = new LoadReport();
loadReport.execute();
}
解决方案
在 tabFragment1.xml 中,为什么要使用以下行代码?
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
如果不需要,请删除这些并让我们知道是否存在此问题?
推荐阅读
- java - Java“AWT-EventQueue-0”java.lang.NullPointerException
- macros - nom 的 "$i" 宏参数从何而来?
- elasticsearch - 使用 go 在 elasticsearch 中进行大规模更新
- java - 在 Criteria API 中按目标加入
- r - 使用函数 filter() 计算移动平均值时出现“无适用方法”错误
- vba - 以编程方式插入构建基块时出现自动化错误 Word 2016
- javascript - 手动更新 redux 状态时更改了 redux 状态引用
- sql-server - 同一张表上分组行的差异和百分比变化
- css - Angular6 - 如何根据移动设备和浏览器改变 .css 类的宽度
- html - 如何最小化 html 表格中的列宽?