lv1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (id > 0) {
popup = new PopupMenu(this, view);//这里用this会报错
popup.getMenuInflater().inflate(R.menu.simple_menu1, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu1: ArrayAdapter temp_adp = (ArrayAdapter) lv1.getAdapter();
temp_adp.remove(temp_adp.getItem(selected_position));
return true;
default: return false;
}
}
});
}
return true;
}
});
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (id > 0) {
popup = new PopupMenu(this, view);//这里用this会报错
popup.getMenuInflater().inflate(R.menu.simple_menu1, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu1: ArrayAdapter temp_adp = (ArrayAdapter) lv1.getAdapter();
temp_adp.remove(temp_adp.getItem(selected_position));
return true;
default: return false;
}
}
});
}
return true;
}
});
你的这个 this 是指向了 OnItemLongClickListener 的匿名内部类了,所以会报错
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.EditText;
import android.widget.Button;
import android.widget.PopupMenu;
import android.view.MenuItem;
import android.content.Context;
import android.widget.SimpleAdapter;public class MainActivity extends AppCompatActivity { public Button bt1;
public ListView lv1;
private int selected_position = -1;
private PopupMenu popup; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); bt1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
EditText et_c,et_a,et_n;
et_c=(EditText)findViewById(R.id.et_c);
et_a=(EditText)findViewById(R.id.et_a);
et_n=(EditText)findViewById(R.id.et_n);
ArrayAdapter temp_adp=(ArrayAdapter) lv1.getAdapter();
temp_adp.add(et_c.getText().toString()+" "+et_a.getText().toString()+" "+et_n.getText().toString());
}
});
lv1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (id > 0)
{
popup = new PopupMenu(getActivity(), view);
popup.getMenuInflater().inflate(R.menu.simple_menu1, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu1:
ArrayAdapter temp_adp = (ArrayAdapter) lv1.getAdapter();
temp_adp.remove(temp_adp.getItem(selected_position));
return true;
default:
return false;
}
}
});
}
return true;
}
});
}
}代码全贴上了,我好像没有XXXActivity之类的