android - 如何添加longclick posiljkica
问题描述
您好,我正在尝试添加长按 posiljkica,我在运行这段代码时遇到了未知问题。
欢迎任何帮助,谢谢。
该项目是在 Android Studio 中完成的,使用 Java 和 xml。
public class PretragaKorisnici extends DialogFragment {
private static final String Korisnik_Key = "Korisnik_Key";
private MyRunnable<KorisnikVM> callback;
private List<KorisnikVM> podaci;
private SearchView pretraga;
private ListView listaKorisnika;
private Button noviKorisnik;
public PretragaKorisnici() {
// Required empty public constructor
}
public static PretragaKorisnici newInstance(MyRunnable korisnikVM) {
PretragaKorisnici fragment = new PretragaKorisnici();
Bundle args = new Bundle();
args.putSerializable(Korisnik_Key, korisnikVM);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
callback = (MyRunnable<KorisnikVM>) getArguments().getSerializable(Korisnik_Key);
}
setStyle(STYLE_NORMAL, R.style.MojDijalog);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_pretraga_korisnici, container, false);
pretraga = view.findViewById(R.id.searchView);
listaKorisnika = view.findViewById(R.id.listaKorisnika);
noviKorisnik = view.findViewById(R.id.NoviKorisnik);
popuniPodatke("");
pretraga.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
popuniPodatke(s);
return false;
}
@Override
public boolean onQueryTextChange(String s) {
popuniPodatke(s);
return false;
}
});
noviKorisnik.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
do_BtnNoviKorisnik();
}
});
return view;
}
private void popuniPodatke(String s) {
podaci = Storage.getKorisniciByName(s);
listaKorisnika.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return podaci.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.stavka_korisnik, viewGroup, false);
TextView txtIme = view.findViewById(R.id.prvaLinija);
TextView txtAdresa = view.findViewById(R.id.drugaLinija);
KorisnikVM k = podaci.get(i);
txtIme.setText(k.getIme() + " " + k.getPrezime());
txtAdresa.setText(k.getAdresaOpstina());
return view;
}
});
listaKorisnika.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
KorisnikVM k = podaci.get(i);
getDialog().dismiss();
callback.run(k);
}
});
}
private void do_BtnNoviKorisnik() {
getDialog().dismiss();
Util.otvoriFragmentKaoDijalog(getActivity(), NoviKorisnikDialog.newInstance(callback, pretraga.getQuery().toString()));
}
}
解决方案
根据你的代码片段listaKorisnika
是你的ListView
实现你的ListView
长按事件。
listaKorisnika.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View v,int index, long arg3) {
Log.d("Listview long click");
String selectedString = listView.getItemAtPosition(index).toString();
Log.d("long click:" +selectedString);
return true;
}
});
推荐阅读
- apache-spark - 使用 Spark JDBC 和 Avatica 从 Apache Druid 中的表中读取记录
- python - 无法理解为什么并且无法正常工作
- python - (Python)为什么我的继承不起作用?
- python - AttributeError:当使用数据框处理时间时,只能使用具有 datetimelike 值的 .dt 访问器
- node.js - 从 POSTMAN nodeJs 向 Azure 服务总线发送消息
- python - 尽管 delay_factor=4,但 Netmiko 超时 - OSError:在 send_command_expect 中从未检测到搜索模式
- docker - Dockerfile - 如何使用 ENV 指令附加 PATH?
- sql - 如何使用条件设置自动递增列值
- batch-processing - 使用 Windows 批处理批量提取文本文件的一部分
- python - 为什么硒查找元素不起作用?