Bitte schauen Sie sich den Code unten an ... ich erstelle ein Kontextmenü und implementiere die Methode onContextItemSelected
aber das Problem ist, dass wenn ich das Antwortobjekt drücke ... den Dialog zum Löschen Fall erscheint auch, und die Aktivität startet auch zweimal ... die Gesamtheit aller Fälle führt ... die die Antwort und die vorwärts-Fall löschen ..., was das Problem bitte helfenKontextmenü funktioniert nicht richtig
@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);
}
}
und hier zu sein passiert, ist die Fehler von der Logcat, die in der Logcat angezeigt wird ...
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 ist die Klasse, in der ich das Kontextmenü bin die Umsetzung ..
und hier ist der Code im Kontextmenü Datei ..
<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>
ja das ist richtig, aber die Rückkehr wahre Aussage sollte im äußeren Bereich sein .... nicht nach der Pause-Anweisung – kashifmehmood
oh meine Antwort bearbeitet wie benötigt/vorgeschlagen –