Android Teilen Button ändern

AGW

AGW

Mitglied
Hallo,


ich habe in meiner App ein Teilen Button, der aber nur einen Link teilt, aber nicht den genauen Link wo man sich befindet. Ich möchte, wenn man z.B. im Bereich News ist, dass der link nicht agw-international.com ist sondern agw-international.com/news/page/1/ ist. Aber wie mache ich das und ist das überhaupt möglich? Und es gibt ja auch einen App Link oder wie das heißt, wo man z.B bei App Benachrichtigungen oder bei Newsletter Mails vor der eigentlichen Link noch davor hängt z.B. ,,app" und dann sich das ganze in der App öffnet.
 
M

mrbela

Bekanntes Mitglied
Was benutzt Du denn genau für ein Framework? Vielleicht hat das schon eine entsprechende Funktionalität.

Sonst würde ich bspw. ein Interface einführen, das als Methode "String getLinkButtonText" (oÄ) besitzt. Jede Klasse (View), die das implementiert muss also sagen, wie der Link (als Textform) auszusehen hat.
 
AGW

AGW

Mitglied
Was benutzt Du denn genau für ein Framework? Vielleicht hat das schon eine entsprechende Funktionalität.

Sonst würde ich bspw. ein Interface einführen, das als Methode "String getLinkButtonText" (oÄ) besitzt. Jede Klasse (View), die das implementiert muss also sagen, wie der Link (als Textform) auszusehen hat.
Keine Ahnung. Ich habe mir die App programmieren lasen, da ich nicht einmal Basis wissen besitze Vielleicht hilft dir der Code weiter: https://www.agw-international.com/AGW International.zip
 
M

mrbela

Bekanntes Mitglied
Ich denke fast, dass Du hier keinen finden wirst, der Dir mal eben eine App umprogrammiert.
Vielleicht wendest Du Dich an denjenigen, der sie Dir geschrieben hat?
 
M

mrbela

Bekanntes Mitglied
Außerdem sind ZIP-Dateien, die man irgendwo aus dem Netz lädt, nicht gerade Vertrauens erweckend.. ;)
 
K

kneitzel

Top Contributor
Also ich würde auch sagen, dass Du Dich an den Entwickler selbst wendest oder eben selbst dir die Android Entwicklung anschaust.

Die Problematik bezüglich ZIP File herunter laden teile ich nicht, da ja nichts ausgeführt wird. Daher ist das ein relativ sicheres Unterfangen, sich so ein ZIP anzusehen. Die App selbst ist relativ klein und nicht besonders komplex, aber ich habe jetzt die Anforderung nicht wirklich verstanden. Wenn Du eine URL ändern willst, dann ist dies ja möglich. MainActivity.java hat ja einie URLs im Source.

Generell ist das aber etwas, was andere eher weniger bearbeiten wollen:
- Es gibt eigentlich keine Tests. (Ok, es gibt zwei Tests - ExampleUnitTest mit dem test, ob 2+2 4 ist und dann noch der ExampleInstrumentedTest ohne wirklichen Nutzen ....
- Der Code scheint auf den ersten Blick unsauber. Aber da die App ja kaum Funktionalität hat, ist dies weniger schlimm. Aber da sollte man auf jeden Fall nachbessern ....
 
AGW

AGW

Mitglied
Also ich würde auch sagen, dass Du Dich an den Entwickler selbst wendest oder eben selbst dir die Android Entwicklung anschaust.

Die Problematik bezüglich ZIP File herunter laden teile ich nicht, da ja nichts ausgeführt wird. Daher ist das ein relativ sicheres Unterfangen, sich so ein ZIP anzusehen. Die App selbst ist relativ klein und nicht besonders komplex, aber ich habe jetzt die Anforderung nicht wirklich verstanden. Wenn Du eine URL ändern willst, dann ist dies ja möglich. MainActivity.java hat ja einie URLs im Source.

Generell ist das aber etwas, was andere eher weniger bearbeiten wollen:
- Es gibt eigentlich keine Tests. (Ok, es gibt zwei Tests - ExampleUnitTest mit dem test, ob 2+2 4 ist und dann noch der ExampleInstrumentedTest ohne wirklichen Nutzen ....
- Der Code scheint auf den ersten Blick unsauber. Aber da die App ja kaum Funktionalität hat, ist dies weniger schlimm. Aber da sollte man auf jeden Fall nachbessern ....
Er hat gesagt, dass so etwas nicht möglich ist (Teilen Button und Links in der App zu öffnen) und er hat es auch nicht gut Verstanden, darum Versuche ich es hier.
 
K

kneitzel

Top Contributor
Mit Deiner Beschreibung kann ich immer noch nichts anfangen. Aber ich habe mir Deine App etwas angesehen und da einfach einmal etwas "gespielt" um heraus zu finden, was Du evtl. willst...

Die Activity hat oben einen share button - derzeit macht der recht wenig:

Java:
ShareCompat.IntentBuilder.from(MainActivity.this)
                            .setType("text/plain")
                            .setChooserTitle("Chooser title")
                            .setText("https://www.agw-international.com")
                            .startChooser();

Es wird also generell der konstante Text geteilt.

Desweiteren hat die Activity ein Fragment, welche eine WebView enthält.

Nun wäre eine Möglichkeit: Du möchtest, das statt dem konstanten Text immer die aktuelle URL der WebView geteilt wird.

Das könnte z.B. so gehen:
Java:
                    String url = "https://www.agw-international.com";
                    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
                    if (fragment != null && fragment instanceof HomeFragment) {
                        HomeFragment homeFragment = (HomeFragment) fragment;
                        url = homeFragment.getWebViewhome().getUrl();
                    }
                    
                    ShareCompat.IntentBuilder.from(MainActivity.this)
                            .setType("text/plain")
                            .setChooserTitle("Chooser title")
                            .setText(url)
                            .startChooser();
Damit das funktioniert, braucht man natürlich im HomeFragment einen Getter auf webViewhome:
Java:
    public static WebView webViewhome;
    public WebView getWebViewhome() { return webViewhome; }
    String link;

Ansonsten frage ich mich, was da getrieben wurde. Wieso ist webViewhome public static? Die direkten Zugriffe auf HomeFragment.webViewhome in der Activity sind - sagen wir mal - relativ seltsam ...

Also noch eine kleine Änderung nur um das erst einmal los zu werden (immer noch extrem unschön):
Änderung HomeFragment:
Java:
    private WebView webViewhome;
    public WebView getWebViewhome() { return webViewhome; }
    String link;

Dann in der MainActivity eine Methode einfügen:
Java:
    public WebView getWebViewhome() {
        Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
        if (fragment != null && fragment instanceof HomeFragment) {
            return ((HomeFragment) fragment).getWebViewhome();
        }
        return null;
    }

Und dann alle HomeView.webViewhome durch getWebViewhome ersetzen...

Aber das sind nur kleine Verbesserungen - das ist generell extrem unsauber. Alleine schon die Benennung ist ein graus....

dowork() im SplashScreeen ist ein sleep
intent() ist als Methode mangelhaft... Methoden sollten ein Verb haben ... Was macht die Methode? Sie erstellt zwar auch einen Intent aber das ist ja nur ein Mittel zum Weg! Wenn Du einkaufen fährst, dann ist das ein fahreEinkaufen() und kein geldboerse(). Also openMainActivity oder so könnte da Sinn machen ...
HomeFragment ist kein HomeFragement sondern ein WebViewFragment oder so, denn es hat ja eigentlich nur die WebView drauf ...

Aber weitere Dinge aufschreiben ist müßig und führt zu nichts. Sowohl Dir als auch dem Entwickler würde ich dringend anraten, sich einmal mit der Entwicklung für Android auseinander zu setzen um da ein generelles Verständnis zu bekommen...
 
AGW

AGW

Mitglied
Mit Deiner Beschreibung kann ich immer noch nichts anfangen. Aber ich habe mir Deine App etwas angesehen und da einfach einmal etwas "gespielt" um heraus zu finden, was Du evtl. willst...

Die Activity hat oben einen share button - derzeit macht der recht wenig:

Java:
ShareCompat.IntentBuilder.from(MainActivity.this)
                            .setType("text/plain")
                            .setChooserTitle("Chooser title")
                            .setText("https://www.agw-international.com")
                            .startChooser();

Es wird also generell der konstante Text geteilt.

Desweiteren hat die Activity ein Fragment, welche eine WebView enthält.

Nun wäre eine Möglichkeit: Du möchtest, das statt dem konstanten Text immer die aktuelle URL der WebView geteilt wird.

Das könnte z.B. so gehen:
Java:
                    String url = "https://www.agw-international.com";
                    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
                    if (fragment != null && fragment instanceof HomeFragment) {
                        HomeFragment homeFragment = (HomeFragment) fragment;
                        url = homeFragment.getWebViewhome().getUrl();
                    }
                   
                    ShareCompat.IntentBuilder.from(MainActivity.this)
                            .setType("text/plain")
                            .setChooserTitle("Chooser title")
                            .setText(url)
                            .startChooser();
Damit das funktioniert, braucht man natürlich im HomeFragment einen Getter auf webViewhome:
Java:
    public static WebView webViewhome;
    public WebView getWebViewhome() { return webViewhome; }
    String link;

Ansonsten frage ich mich, was da getrieben wurde. Wieso ist webViewhome public static? Die direkten Zugriffe auf HomeFragment.webViewhome in der Activity sind - sagen wir mal - relativ seltsam ...

Also noch eine kleine Änderung nur um das erst einmal los zu werden (immer noch extrem unschön):
Änderung HomeFragment:
Java:
    private WebView webViewhome;
    public WebView getWebViewhome() { return webViewhome; }
    String link;

Dann in der MainActivity eine Methode einfügen:
Java:
    public WebView getWebViewhome() {
        Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
        if (fragment != null && fragment instanceof HomeFragment) {
            return ((HomeFragment) fragment).getWebViewhome();
        }
        return null;
    }

Und dann alle HomeView.webViewhome durch getWebViewhome ersetzen...

Aber das sind nur kleine Verbesserungen - das ist generell extrem unsauber. Alleine schon die Benennung ist ein graus....

dowork() im SplashScreeen ist ein sleep
intent() ist als Methode mangelhaft... Methoden sollten ein Verb haben ... Was macht die Methode? Sie erstellt zwar auch einen Intent aber das ist ja nur ein Mittel zum Weg! Wenn Du einkaufen fährst, dann ist das ein fahreEinkaufen() und kein geldboerse(). Also openMainActivity oder so könnte da Sinn machen ...
HomeFragment ist kein HomeFragement sondern ein WebViewFragment oder so, denn es hat ja eigentlich nur die WebView drauf ...

Aber weitere Dinge aufschreiben ist müßig und führt zu nichts. Sowohl Dir als auch dem Entwickler würde ich dringend anraten, sich einmal mit der Entwicklung für Android auseinander zu setzen um da ein generelles Verständnis zu bekommen...
Ich erhalte dann den Error:
AGW International\app\src\main\java\com\mshahinx\agwinternationalgerman\MainActivity.java:156: error: cannot find symbol
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
^
symbol: class Fragment
 
K

kneitzel

Top Contributor
Eigentlich sollte Deine IDE doch Optionen haben, die notwendigen Imports hinzu zu fügen. ALT - Enter sollte diese Option in IntelliJ / Android Studio triggern.

Fragment benötigt den folgenden Import:
Java:
import androidx.fragment.app.Fragment;

Aber das richtige Vorgehen ist hier wichtig, denn das kommt ja prinzipiell häufiger vor...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Teilen funktion Android & Cross-Platform Mobile Apps 2
S ein String nach vorgegebenen Zeichen teilen Android & Cross-Platform Mobile Apps 3
A Button in SurfaceView integrieren Android & Cross-Platform Mobile Apps 10
J Android App - Browser öffnen und Text eingeben/Button click auslösen Android & Cross-Platform Mobile Apps 10
L Button zum Quadrad zwingen Android & Cross-Platform Mobile Apps 2
S Android Absoluter Neuling: EditText zur Laufzeit verändern bzw. über Button Android & Cross-Platform Mobile Apps 2
L Dialog anzeigen wenn auf Button gedrückt wird. Android & Cross-Platform Mobile Apps 4
S Android ListFragment & ArrayAdapter - Button-Werte werden vergessen Android & Cross-Platform Mobile Apps 0
B Android Abfragen wie lang ein Button gedrückt wurde Android & Cross-Platform Mobile Apps 2
J Android button mithilfe einer Methode automatisch erstellen Android & Cross-Platform Mobile Apps 6
A AlertDialog Enable Button Android & Cross-Platform Mobile Apps 1
J Button array ID Problem Android & Cross-Platform Mobile Apps 2
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
B Android ringProgressDialog nach Erfolg Button einfärben Android & Cross-Platform Mobile Apps 2
A Android Menü Button oben links Android & Cross-Platform Mobile Apps 1
B Mit Button GeräteEinstellung des Handys öffnen Android & Cross-Platform Mobile Apps 3
M Android Android "Up-Button" extra definieren? Android & Cross-Platform Mobile Apps 1
K Problem mit arraylist und button Android & Cross-Platform Mobile Apps 16
T Button aktivieren per Qullcode... Android & Cross-Platform Mobile Apps 3
T Button geht net... Android & Cross-Platform Mobile Apps 2
D Man sieht nicht ob Button gedrückt wurde! Android & Cross-Platform Mobile Apps 10
K Grafik Tablerow, Button erstreckt sich in der gesamten Breite trotz Beschrenkung durch (max)width Android & Cross-Platform Mobile Apps 2
G Button ein Wert zuweisen Android & Cross-Platform Mobile Apps 5
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
B Android Button erstellen nach Vorlage Android & Cross-Platform Mobile Apps 4
L Android Button mit Pfeil nach rechts Android & Cross-Platform Mobile Apps 1
M Einzel Verarbeitung welcher Button angeklickt wurde? Android & Cross-Platform Mobile Apps 6
S Back-Button Methode überschreiben Android & Cross-Platform Mobile Apps 2
P Android Option Button Android & Cross-Platform Mobile Apps 4
G Check Button ist unchecked trotz setChecked(true) Android & Cross-Platform Mobile Apps 6
G Android Button mit Bild Android & Cross-Platform Mobile Apps 4
W Android App Programmierung - Button ganz transparent machen Android & Cross-Platform Mobile Apps 3
L Custom Dialog Button event Android & Cross-Platform Mobile Apps 2
J Button rechtsbündig Android & Cross-Platform Mobile Apps 5
A Android Button Array? Android & Cross-Platform Mobile Apps 6
P Android Button mit bild versehen Android & Cross-Platform Mobile Apps 4
J "Button" auf List erstellen Android & Cross-Platform Mobile Apps 4
U Fire button und Command.BACK, 1 kommen sich in die quere Android & Cross-Platform Mobile Apps 2
A ImageButton in ListView Item bei klick ändern Android & Cross-Platform Mobile Apps 3
S Android Style vom Spinner ändern (Dropdown sowie Fontfarbe) Android & Cross-Platform Mobile Apps 1
L Hintergrund eines Switch(Buttons) ändern Android & Cross-Platform Mobile Apps 3
Maresuke Android Android ListView Textfarbe und Texthintergrund ändern? Android & Cross-Platform Mobile Apps 5
A Fehlermeldung beim ändern der ViewGroup. Android & Cross-Platform Mobile Apps 6
H Buttons färben sich mit, beim Hintergrund ändern Android & Cross-Platform Mobile Apps 3
H Fehler Actionbar Theme ändern Android & Cross-Platform Mobile Apps 2
A Android Ändern der Farbe des NavBar Titels Android & Cross-Platform Mobile Apps 2
S Android CheckBox Status von anderer Klasse aus ändern Android & Cross-Platform Mobile Apps 4
H Radiobutton Eigenschaften ändern (in Radiogroup) Android & Cross-Platform Mobile Apps 2
G Android zur Laufzeit den Text im Menü ändern Android & Cross-Platform Mobile Apps 3
JAVAnnik Android Layout ändern in Thread Android & Cross-Platform Mobile Apps 2
Maxim6394 [ Android ] Activity ändern Android & Cross-Platform Mobile Apps 9
Maxim6394 [Android] contentView ändern Android & Cross-Platform Mobile Apps 3
I Android Hintergrundfarbe von Textview (Shape) ändern Android & Cross-Platform Mobile Apps 19
T Android AlertDialog; Buttons ändern Android & Cross-Platform Mobile Apps 4
J Java ME vorhandes Javaprojekt in JavaME ändern Android & Cross-Platform Mobile Apps 6
G Schriftgröße in einem TextField ändern Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben