, пожалуйста, посмотрите на код ниже ... Я создаю контекстное меню и реализую метод onContextItemSelected
, но проблема в том, что когда я нажимаю элемент ответа ... диалог удаления случае также появляется и активность также начинается в два раза ... означает, что все случаи выполняет ... удалить ответ и вперед дело ... что случается проблема, пожалуйста, помогитеконтекстное меню не работает должным образом
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId())
{
case R.id.reply:
{
Intent i = new Intent();
String s2 = (String) ((Cursor) getListView().getItemAtPosition(info.position))
.getString(2);
i.putExtra("number", s2);
// Log.v("number", s2);
i.setClass(this, CreateMessage.class);
// i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
case R.id.delete:
{
final String s = (String) ((Cursor) getListView().getItemAtPosition(info.position))
.getString(1);
dba = new DBAdapter(this);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to delete?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Log.v("", "You Clicked " + s);
dba.delete("messages", "id=?", new String[] { s });
populate();
dba.close();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
case R.id.forward:
{
Intent i = new Intent();
String s3 = (String) ((Cursor) getListView().getItemAtPosition(info.position))
.getString(4);
// Log.v("message", s3);
i.putExtra("message", s3);
i.setClass(this, CreateMessage.class);
startActivity(i);
}
default:
return super.onContextItemSelected(item);
}
}
и вот ошибка от логарифма, который отображается в логарифме ...
03-30 09:13:28.439: E/WindowManager(2273): Activity sms.app.Displayer has leaked window [email protected] that was originally added here
sms.app.Displayer класс, в котором я реализую контекстное меню ..
и вот код файла контекстного меню ..
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/reply" android:title="Reply"></item><item
android:id="@+id/forward"
android:title="Forward">
</item>
<item android:id="@+id/delete" android:title="Delete Message">
</item>
</menu>
yes thats right, но возвращаемый оператор true должен быть во внешней области .... не после инструкции break – kashifmehmood
oh отредактировал мой ответ по мере необходимости/предлагалось –