the problem is the list item on which it is clicked does not get deleted but an item behind or in front of it gets deleted (for list2.get(d) or list2.get(d-1))how to get the item which is clicked to get deleted?)
Intent intent=getIntent();
k=intent.getStringExtra("this is a");
list=(ListView)findViewById(R.id.listview);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
d=i;
AlertDialog.Builder dialog=new AlertDialog.Builder(Main3Activity.this);
dialog.setMessage("this is a");
dialog.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int l){
ParseQuery<ParseObject> b=new ParseQuery<ParseObject>("message");
b.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e)
{
if(e==null) {
for (ParseObject n : objects) {
if (n.getString("message").equals(list2.get(d))&&(n.getString("receiver").equals(ParseUser.getCurrentUser().getUsername().toString())&&n.getString("sender").equals(k)))
{
try {
Toast.makeText(Main3Activity.this,list2.get(d+1), Toast.LENGTH_SHORT).show();
n.delete();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
else
{
Log.i("this is a",e.getMessage());
}
}
});
list2.remove(d);
a.notifyDataSetChanged();
this
in this case refers to onItemClickListener context. You can either use application context by calling getApplicationContext()
OR if you need local context, use CLASSNAME.this
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
Intent intent=getIntent();
list=(ListView)findViewById(R.id.listview);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
AlertDialog.Builder dialog=new AlertDialog.Builder(getApplicationContext());
}
});
OR
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
Intent intent=getIntent();
list=(ListView)findViewById(R.id.listview);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
}
});