java - 将项目添加到片段中的 ListView
问题描述
我想通过editText在ListView中添加项目,但是当我运行我的代码时,它不起作用。
public class EventosFragment extends Fragment {
private ListView lista;
private Button boton;
EditText editText;
ArrayList<String> arrayList;
ArrayAdapter<String> adapter;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_eventos, container, false);
String[] Lista = {};
ListView listView = (ListView) view.findViewById(R.id.Lista);
arrayList = new ArrayList<>(Arrays.asList(Lista));
adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(adapter);
editText = (EditText) view.findViewById(R.id.edittxt);
Button btnAdd = (Button) view.findViewById(R.id.Aceptar);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String Aceptar = editText.getText().toString();
arrayList.add(Aceptar);
}
});
return view;
}
}
任何建议都可以,我是Java新手,谢谢。
解决方案
将 item 添加到 arraylist 后,使用适配器的 notifyDataSetChanged() 方法。
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String Aceptar = editText.getText().toString();
arrayList.add(Aceptar);
adapter.notifyDataSetChanged();
}
});
希望它会有所帮助!
推荐阅读
- aws-api-gateway - 在 aws API 网关中共享相同父路由的两个服务
- python-3.x - Python configparser 自动转换为布尔值
- c# - 在 WPF 中创建自定义可重用用户控件,弄清楚如何组合进度条和滑块?
- c++ - 是否存在一个 range::views::group_by 对应项,它考虑了所有元素,而不仅仅是连续的元素?
- sql - 在 hive/impala 中运行多个 sql 查询以测试通过或失败
- kotlin - 最佳实践是什么:Verticles 中的业务逻辑还是单独的?
- mysql - 用 MySQL 5.7 模拟 PARTITION OVER
- ios - 如何阻止 ios core-bluetooth CBCentralManagerDelegate 在 ios13 中断开连接
- mysql - 如果特定列的字段存在,如何更新
- spring - 使用 PostgreSQL 休眠 - org.postgresql.jdbc4.Jdbc4Connection.isValid(int) 尚未实现