来自单击列表视图中的控件的对话框
Posted
技术标签:
【中文标题】来自单击列表视图中的控件的对话框【英文标题】:Dialog from click on control in list view 【发布时间】:2018-08-24 02:01:29 【问题描述】:在 Listview 视图中的控件上显示对话框(如日期选择器)的最佳做法是什么?
是否可以创建嵌入对话框逻辑的自定义控件并将其放入 Listview 视图中?
编辑:
例如: 我有放置在 Listview 中的 textEdit。我想在用户单击 textEdit 时显示日期选择器。我想知道放置对话逻辑的最佳位置是什么。
【问题讨论】:
看不懂你的问题,请解释清楚 我更新了问题。请让我知道我的问题中不清楚的地方。 当用户点击edittext时可以显示对话框 是的,但编辑文本被放置在列表视图中。那么我应该将逻辑放入放置列表视图的活动/片段中吗? 你在listview适配器里面试过了吗? 【参考方案1】:您可以在适配器逻辑中为ListView
使用setOnItemClickListener
。
然后您需要创建OnItemClickListener
的实例并覆盖OnClick()
方法并在那里执行您的点击逻辑。下面是一个非常简单的例子来演示这个概念。
public class MySimpleListAdapter implements ListAdapter
// Set your constructors and so on
. . .
@Override
public View getView(int position, View convertView, ViewGroup parent)
final ViewHolder viewHolder;
if (convertView == null)
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.simple_row_layout, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView.findViewById(R.id.simple_text_view);
convertView.setTag(viewHolder);
else
viewHolder = (ViewHolder) convertView.getTag();
if (adapterData != null)
viewHolder.textView.setText(item.getTaskTitle()); // This is logic from my SQ Lite database
viewHolder.textView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
// Implement your logic for launching a DialogFragment here
);
return convertView;
最后,在您显示ListView
的Activity
中,只需将MySimpleListAdapter
设置为您的ListView
即可。
我上面的代码使用TextView
小部件而不是EditText
,但它应该足够简单,可以用EditText
小部件替换它。
【讨论】:
以上是关于来自单击列表视图中的控件的对话框的主要内容,如果未能解决你的问题,请参考以下文章