2017-08-02 1 views
0

Ich rufe an Die gleiche Aktivität für verschiedene Navigationselemente hängt von der Anforderung ab. Meine Frage ist, wie man gleichzeitige Klicks desselben Navigationselements basierend auf der ID vermeiden kann. Wenn ich festlege, dass die restlichen Elemente, die zu dieser Aktivität gehören, ebenfalls nicht funktionieren, bitte hilf mir.So vermeiden Sie gleichzeitige Klicks auf Navigationselemente

-Code

if (id == R.id.nav_Issue_Based) { 
try { String fileName = "assessments.pdf"; 
     viewPdfActivity(fileName, "Issue Based"); 
     drawer.closeDrawer(GravityCompat.START); 
} catch (Exception e) { e.printStackTrace(); } } 

andere

private void viewPdfActivity(String fileName, String title) { 
try { 
Bundle bundle = new Bundle(); 
bundle.putSerializable("file_name", fileName); 
b undle.putString("title", title); 
startActivity(context, bundle, DocumentsLoaderActivity.class); 
} 
catch (Exception e) { 
e.printStackTrace(); } 
} 

mehr Code

private void startActivity(Context context, Bundle b, Class<?> cls) { 
try { 
Intent intent = new Intent(context, cls); 
if (b != null) { 
    intent.putExtras(b); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
} 
context.startActivity(intent); 
} catch (Exception e) { 
    e.printStackTrace(); 
    } 
} 
+1

hier einen Code setzen Bitte –

+0

if (id == R.id.nav_Issue_Based) { try { Zeichenfolge fileName = "assessments.pdf"; viewPdfActivity (Dateiname, "Problembasiert"); drawer.closeDrawer (GravityCompat.START); } catch (Ausnahme e) { e.printStackTrace(); } } –

+0

private void viewPdfActivity (Zeichenfolge fileName, String title) { versuchen { Bundle Bundle = neue Bundle(); bundle.putSerializable ("Dateiname", Dateiname); bundle.putString ("Titel", Titel); startActivity (Kontext, Bündel, DocumentsLoaderActivity.class); } catch (Ausnahme e) { e.printStackTrace(); } } –

Antwort

0

Ihre Aktivität Auf mit Ihnen navigieren, einzelne Instanz in Manifest als: launchMode = "SingleInstance". Es wird nur für den letzten Klick geöffnet.

+0

Wenn ich launchmode = singleInstance für meine Aktivität setze, kann ich nicht auf andere Navigationselemente klicken, um die gleiche Aktivität zu öffnen, weil ich dieselbe Aktivität für 4 Navigationselemente verwende, um sie zu öffnen, aber nicht das gleiche Objekt, das zweimal geladen werden soll –

+0

Wenn Ihre Aktivität eine einzelne Instanz ist und mit verschiedenen Daten von verschiedenen Orten gestartet wird, wird beim Versuch, sie erneut zu öffnen, onNewIntent() aufgerufen. So können Sie Ihre Inhalte hier aktualisieren – Charu

0

versuchen, diese Anwendung intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Intent intent = new Intent(LoginActivity.this, HomeScreenActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

oder diese in Manifest-Datei Ihrer Aktivität wie dieses read docs für weitere Informationen

<activity android:name=".MainActivity" android:launchMode="singleInstance"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

erklären

+0

Aufblasen des gleichen Bildschirms für unsere Augen sichtbar Wenn ich das nicht möchte Was soll ich tun, gibt es eine Lösung? –

+0

hast du nicht verstanden kannst du es kurz erklären –

Verwandte Themen