当我点击第一次单击按钮时单击功能不起作用,但第二次单击单击功能工作。我不知道我的代码有什么问题。请建议我正确的方式。提前致谢
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
ImageView deletelist = (ImageView) view.findViewById(R.id.dltconsumer);
final CustomFontTextView number = (CustomFontTextView) view.findViewById(R.id.consumer_number);
deletelist.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JSONArray delete_jsonarray;
JSONObject jsonObject;
String phonenumber = number.getText().toString();
String jsonsetpreference_data = SessionManager.getPreferences(context,"splitfare_consumer");
Log.d("jsonsetpreference_data:::::::","" +jsonsetpreference_data);
try {
delete_jsonarray= new JSONArray(jsonsetpreference_data);
for (int i =0; i<= delete_jsonarray.length()-1 ; i++){
jsonObject = delete_jsonarray.getJSONObject(i);
String array_phonenumber = jsonObject.getString("number");
if (phonenumber.equals(array_phonenumber)){
delete_jsonarray.remove(i);
}
}
SessionManager.setPreferences(context,"splitfare_consumer",delete_jsonarray.toString());
String data = SessionManager.getPreferences(context,"splitfare_consumer");
Log.d(TAG,""+data);
ArrayList<String> details = new ArrayList<String>();
try {
js = new JSONArray(data);
} catch (JSONException e) {
e.printStackTrace();
}
adapter = new AddPassengerAdapater(context,js,details);
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
});
答案 0 :(得分:1)
只需阅读上面的代码:当调用onItemClick时,在某个图像视图上设置setOnClickListener。这是一次点击。这里唯一要做的就是设置监听器。
然后,在进一步点击时,将调用ImageView的onClick。
您应该考虑直接使用ListView的onItemClick,或者在ImageView的xml中添加以下属性:
android:clickable="true"
android:onClick="yourMethodNameHere"
答案 1 :(得分:0)
为什么使用listview?那是因为按钮在listview中我猜...
您可以将Recyclerview与onItemClick一起使用,请参阅本教程 https://antonioleiva.com/recyclerview-listener/
希望这能帮到你