java - 点击完全没有反应
问题描述
这是来自 Android 初学者书籍的示例。我认为问题出在 mNoteAdapter 上,但我找不到它的确切位置。我尝试使用其他来源的适配器并且它正在工作(我的意思是单击)所以我至少可以看到登录 logcat。mNoteAdapter 如何影响用户通过应用点击的可能性?我怎样才能找到问题所在?
mNoteAdapter = new NoteAdapter();
ListView listNote = (ListView) findViewById(R.id.listView);
listNote.setAdapter(mNoteAdapter);
listNote.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View view, int
whichItem, long id) {
Log.e("CLICK", "CliCK");
}
});
}
这是一个 NoteAdapter 类
public class NoteAdapter extends BaseAdapter {
List<Note> noteList = new ArrayList<Note>();
@Override
public int getCount() {
}
@Override
public Note getItem(int whichItem) {
}
@Override
public long getItemId(int whichItem) {
}
@Override
public View getView(int whichItem, View view, ViewGroup viewGroup) {
if (view == null) {
LayoutInflater inflater = (LayoutInflater)
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.listitem, viewGroup, false);
}
TextView txtTitle = (TextView) view.findViewById(R.id.txtTitle);
ImageView ivImportant = (ImageView) view.findViewById(R.id.imageViewImportant);
Note tempNote = noteList.get(whichItem);
if (!tempNote.isImportant()) {
ivImportant.setVisibility(View.GONE);
}
txtTitle.setText(tempNote.getTitle());
return view;
}
public void addNote(Note n) {
}
}
解决方案
在 Android 上有很多方法可以将项目显示为列表。--> ListView、RecyclerView 等。
列表需要来源吗?假设您的源是一个包含 1000 个元素的数组。您的 ListView 必须有尽可能多的列才能显示所有列,对吗?
- 适配器负责获取数组,并将每个元素分配给每个列表占位符
推荐阅读
- android - 为什么需要作者在这个@Composable 中添加关键字remember?
- html - 如何在悬停时隐藏按钮?
- arrays - 如何在 vivado hls 中编写采用二维数组并返回二维数组的函数?
- bootstrap-5 - 如何在引导程序 5 中将 div 居中?
- android - Jetpack compose TextField,有没有办法在编辑文本时显示拖动手柄气泡以移动光标位置?
- jmeter - 如何在 JMeter 的 HTML Dashboard 结果中查看 Perfmon 图?
- php - file_put_contents(path): failed to open stream: Is a directory
- typescript - 在打字稿中,有没有办法防止对内置函数和全局变量的隐式依赖
- python - 使用 python 对 CSV 列进行简单的数学运算
- python - 使用 Selenium 从 tr 中获取所有 td