gpt4 book ai didi

android - Gmail 样式 ListView

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:56 24 4
gpt4 key购买 nike

我想创建一个功能类似于 Gmail android 应用程序的 ListView 。我的意思是,您可以通过单击左侧的图像来选择行,或者通过单击该行的其他任何位置来查看电子邮件。我可以接近,但还差得远。

我的自定义行由左侧的 ImageView 和右侧的一些 TextView 组成。这是我的适配器上 getView 的要点。

    @Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);

imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getListView().setItemChecked(position, !getListView().isItemChecked(position));
}
});

row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "" + position, Toast.LENGTH_SHORT).show();
}
});
}

这非常接近!缺少的是行点击监听器上行的突出显示。

最佳答案

选项 1:使用 listView 的内置 choiceMode 功能。不幸的是,我从未实现过。所以,不能给你详细的答复。但是你可以从here中得到提示。和其他答案。

选项 2:自行实现。定义一个 array/list 或任何保留列表中所选元素索引的变通方法。然后在 getView() 中用它来过滤背景。这是一个工作示例:

public class TestAdapter extends BaseAdapter {

List<String> data;
boolean is_element_selected[];

public TestAdapter(List<String> data) {
this.data = data;
is_element_selected = new boolean[data.size()];
}

public void toggleSelection(int index) {
is_element_selected[index] = !is_element_selected[index];
notifyDataSetChanged();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
//Initialize your view and stuff

if (is_element_selected[position])
convertView.setBackgroundColor(context.getResources().getColor(R.color.blue_item_selector));
else
convertView.setBackgroundColor(Color.TRANSPARENT);

imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toggleSelection(position);
}
});

row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//get to detailed view page
}
});

return convertView;
}

祝你好运!

关于android - Gmail 样式 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18426078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com