2017-06-10 3 views
-1

Ich habe eine globale Variable. Während der Arbeit der App ändert sich der Wert. Es gibt eine Schaltfläche zum Teilen und wenn ich darauf tippe, kann ich nur den Wert teilen, wenn die App gestartet wurde. Ich möchte mit shareIntent den aktualisierten Wert senden. Wie es geht?Wie aktualisiere ich Daten in Share Intent?

private int counter; 
... 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    counterTextView = (TextView) findViewById(R.id.counter_text_view); 
    counter++; 
    String counterStr = Integer.toString(counter); 
    counterTextView.setText(counterStr); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate menu resource file. 
    getMenuInflater().inflate(R.menu.main, menu); 

    // Locate MenuItem with ShareActionProvider 
    MenuItem item = menu.findItem(R.id.menu_item_share); 

    // Fetch and store ShareActionProvider 
    mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); 
    setShareIntent(createShareIntent()); 

    // Return true to display menu 
    return true; 

} 

// Call to update the share intent 
private void setShareIntent(Intent shareIntent) { 
    if (mShareActionProvider != null) { 
     mShareActionProvider.setShareIntent(shareIntent); 
    } 
} 
private Intent createShareIntent() { 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, 
      counter); 
    return shareIntent; 
} 
+0

die Variable statisch machen? – Konrad

+0

Sorry, aber es funktioniert nicht. Ich habe es versucht ... –

Antwort

1

können Sie SharedPreferences verwenden permanent Ihre Daten zu speichern.

+0

Ich speichere Daten mit SharedPreferences. Ich muss aktualisierten Wert von Zähler auf shareIntent setzen !!! –

+0

Bitte fügen Sie mehr Code hinzu, wir wissen wirklich nicht, was genau Sie versuchen zu erreichen. Wo aktualisieren Sie Ihren Zähler? – Konrad

+0

Ich habe den Code hinzugefügt. Ich aktualisiere Zähler, aber der Share Intent sendet den Zählerwert von Anfang an und nicht einen Aktualisierungswert. –

0

Sie setzen eine konstante Textzeichenfolge "Zähler" in die Intent. Vielleicht so etwas wie diese stattdessen versuchen:

shareIntent.putExtra("counter", counter); 

und bekommt es so wieder heraus:

int counter = getIntent().getIntExtra("counter", -1); 
if (counter != -1) { 
    // do stuff 
} 
Verwandte Themen