- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的 onItemClickListener 有问题。它不起作用,甚至没有检测到 ListView 中元素的点击。我有几乎相同的片段相关这是片段中的调用:
public void onViewCreated(View view, Bundle savedInstanceState) {
list = (ListView) view.findViewById(R.id.listAwards);
list.setItemsCanFocus(false);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fragment = new AwardDetailFragment();
ft.replace(R.id.fragmentlayout, fragment);
ft.commit();
Toast.makeText(getContext(),"Test",Toast.LENGTH_LONG).show();
}
});
这是 xml 文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@color/neonGreen"
android:id="@+id/rewards_section_header"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NAGRADE"
android:id="@+id/textView11"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="@color/lightgraylampica"
android:textSize="20dp"
android:layout_marginLeft="10dp"
android:textStyle="bold" />
</RelativeLayout>
<com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/swipe_section_swipe"
app:srl_direction="bottom"
android:layout_below="@+id/rewards_section_header">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listAwards"
android:layout_below="@+id/rewards_section_header"
android:layout_alignParentLeft="true"
android:focusable="false"
android:clickable="true"
android:focusableInTouchMode="false"
android:layout_alignParentStart="true"
android:contextClickable="true" />
</com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayout>
</RelativeLayout>
完整 Activity 代码:
public class AwardListFragment extends Fragment {
// The onCreateView method is called when Fragment should create its View object hierarchy,
// either dynamically or via XML layout inflation.
int offset = 0;
int size = 8;
private SwipyRefreshLayout swipyRefreshLayout;
private ProgressDialog progressBar;
private ArrayList<Awards> listAwards;
private ListView list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.rewards_section, parent, false);
listAwards = new ArrayList<>();
swipyRefreshLayout = (SwipyRefreshLayout) rootView.findViewById(R.id.swipe_section_swipe);
swipyRefreshLayout.setOnRefreshListener(new SwipyRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh(SwipyRefreshLayoutDirection direction) {
if (direction == SwipyRefreshLayoutDirection.BOTTOM) {
offset++;
swipyRefreshLayout.setRefreshing(false);
showlist();
}
}
});
return rootView;
}
// This event is triggered soon after onCreateView().
// Any view setup should occur here. E.g., view lookups and attaching view listeners.
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
list = (ListView) view.findViewById(R.id.listAwards);
list.setItemsCanFocus(false);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fragment = new AwardDetailFragment();
ft.replace(R.id.fragmentlayout, fragment);
ft.commit();
Toast.makeText(getContext(),"Test",Toast.LENGTH_LONG).show();
}
});
// Setup any handles to view objects here
// EditText etFoo = (EditText) view.findViewById(R.id.etFoo);
showlist();
}
public void showlist() {
progressBar = new ProgressDialog(getActivity());
progressBar.setMessage("Pričekajte molim...");
progressBar.show();
final int firstitemposition = 0;
final int currentposition = list.getFirstVisiblePosition();
NetworkSDK.getInstance().getAwards(size, offset, new Callback<List<Awards>>() {
@Override
public void onResponse(Call<List<Awards>> call, Response<List<Awards>> response) {
if (response.isSuccess()) {
if (response.body().size() == 0) {
Toast.makeText(getContext(), "Sve nagrade su učitane", Toast.LENGTH_SHORT).show();
progressBar.setCancelable(false);
progressBar.dismiss();
} else
for (int i = 0; i < response.body().size(); i++)
listAwards.add(response.body().get(i));
AwardsAdapter awardsAdapter = new AwardsAdapter(listAwards);
list.setAdapter(awardsAdapter);
awardsAdapter.notifyDataSetChanged();
list.setSelectionFromTop(currentposition + 1, firstitemposition);
}
progressBar.setCancelable(false);
progressBar.dismiss();
}
@Override
public void onFailure(Call<List<Awards>> call, Throwable t) {
}
});
}
}
最佳答案
为什么不在片段 ListView
xml 条目中添加 android:onClick="clickFunction"
并尝试如下:
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listAwards"
android:layout_below="@+id/rewards_section_header"
android:layout_alignParentLeft="true"
android:focusable="false"
android:clickable="true"
android:focusableInTouchMode="false"
android:layout_alignParentStart="true"
android:onClick="clickFunction"
android:contextClickable="true" />
然后在你的片段中:
public void clickFunction(View v) {
// Do something
}
关于java - listview.setOnItemClickListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37252519/
我无法启动“OnItemClickListener”。 你可以看到我的代码 fragment ListAdapter adapter = new SimpleAdapter(this, mylist
让我们从我刚接触 Android 开始吧。 我有一个 GridView 设置作为网格,我用它来代表我正在制作的一个小棋盘游戏应用程序的棋盘。我已经为我的 GridView 设置了一个“setOnIte
所以我试图为我的ListView 设置一个OnItemClickListener。但它根本没有被调用。我已经寻找了一些答案,但没有一个对我有用。 (一切都应该不可聚焦/可点击) ListView 本身
我的Listview应用程序从自定义适配器ListAdapter.class获取itemview的数据和背景颜色。我还需要在下面的textview中设置当前选定的列表项值listview,但是MAin
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: setOnItemClickListener not getting called 我有一个扩展基本适配器的
我无法让 onItemClickListener 工作。我所做的就是使用 Intent 打开一个 fragment 。如果我在这里做任何可疑的事情,请告诉我? public class MyListF
我为我的 ListView 实现了自定义适配器,然后我使用函数 setOnItemClickListener 和 getItemAtPosition 从特定列表项中提取对象。但是当我点击一个特定的列表
我知道这里有很多像我这样的问题,但我不知道为什么没有一个对我有用。 我的目标:我有一个带有 ListView 的 AlertDialog,每行都有一个复选框,我可以选择一些项目,我希望制作一个包含所选
这是我收到的错误: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.List
我有一个 ListView ,我想在单击它时删除 ListView 中的一个项目。 我使用了 list.setOnItemClickListener(this); 但“this”用红色下划线表示, s
我有 listView 和 SimpleAdapter,它们设置了我的 listView。但是没有引发 setOnItemClickListener 事件。 @Override protected v
我的 android 应用程序在横向模式下工作。我有一个包含一些项目的 ListView 。问题是仅当我单击项目名称时才会调用 setOnItemClickListener。我的意思是,如果我选择不是
我的 ListView 包含十行。每行都包含 CheckBox。我如何使用 setOnItemClickListener 检查和取消选中 CheckBox 示例代码:(它对我不起作用) listvie
我已经为我的 View 对象定义了 setOnItemClickListener,我需要在应用程序的某些计算期间禁用它。如何禁用它? 最佳答案 这应该有效: yourView.setOnItemCli
我使用“包含”XML。我不想设置每个“Activity ”setOnItemClickListener。 我的“包含”XML food.xml 我把他放在哪里 每
我试图让我的 setOnItemClickListener 工作,但是当我添加该方法时,Eclipse 说我应该删除“@Override”注释,如果我这样做,监听器将不起作用。问题是我需要捕获“点击”
我有一个带有 81 个按钮的 GridView。我想将 clicklistener 添加到此 gridview,但它不可用。我已经添加了 OnItemClickListener 但它不起作用,我不明白
我正在流行电影项目工作,我使用了电影数据库我成功地从 API 获取了数据,但是当我单击 RecyclerView 中的项目时,它不起作用。我已按照 udacity 教程进行操作 热门电影问题 ther
我的项目使用 Firebase Firestore UI 以便在 fragment 中使用 RecyclerView + CardView 组合显示集合,我使用了提供的适配器由 FirestoreUI
我正在使用 GridView 来显示数字,我想要下一个 Activity 当我点击任何数字时但是当我单击 n 数字时,没有任何反应,logcat 中没有错误,也没有任何强制关闭。 这是代码 publi
我是一名优秀的程序员,十分优秀!