Vielen Dank für die Antwort.
Ich habe mir das angeschaut und verstehe das nicht ganze wie es in stackoverflow steht.
Bei Build meckert der allein schon weil ich hier im Fragment bei myConditon meine Variabele mWebView eingesetzt habe.
@Overridepublic boolean onBackPressed() {if (myCondition) {//action not popBackStackreturn true;} else {return false;}} }
Beiträge von LeSchurke
-
-
Guten Abend Leute,
aktuell mach ich für einen Freund, der einen Webshop besitzt eine App.
Da ich noch am Anfang bin möchte ich vieles versuchen und gehe hin und wieder vlt den einfachen Dingen (oft nicht bewusst) aus dem Weg.Mein Problem:
ich habe ein Fragment erstellt mit der Funktion eine Webseite in der App zu öffnen.
Wenn ich in dem Fragment mit dem WebView drin bin und dann am Handy auf die Backtaste drücke, schließt sich die App.Diesen Code möchte ich gerne einfügen:
public void onBackPressed() {
if (webView.canGoBack()){
webView.goBack();
} else {
super.onBackPressed();
}
}Aber .onBackPressend(); ist rot (scheinbar nicht möglich im Fragment)Nachfolgenden der ganze Code:import android.os.Bundle;import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;public class Instagram extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}public WebView mWebView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_layout_webviewinstagram, container, false);
mWebView = (WebView)v.findViewById(R.id.webviewinstagram);
mWebView.loadUrl("https://www.instagram.com/why.design63/");WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);mWebView.setWebViewClient(new WebViewClient());
return v;
}public void onBackPressed() {
if (webView.canGoBack()){
webView.goBack();
} else {
super.onBackPressed();
}
}
} -
alles klar schick ich dir.
Habe dir auch bereits schon ein paar nachrichten geschrieben. -
Ah ok.
Anfangs war es eine vollständige eigenständige App. Sie war lediglich ein webview einer Seite.Nun habe ich mir gedacht, dass ich den webview einfach integrieren kann, als eine eigene Java Datei und diesen webview dann durch das auswählen im drawe auf Punkt Shirtee in der App starte.
Ich würde dir das gerne mal zeigen, weil ich glaube, dass ich irgendwo ein Logik Fehler habe.
Können wir mal skypen oder kann ich dir das Projekt mal zusenden? -
glaube ich verstehe jetzt was du meinst
es soll die Shirtee.java geöffnet werden
Diese beinhaltet ein WebView zu einem Online Shop.Folgendes habe ich nun gemacht
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();if (id == R.id.nav_amazon) {
// Handle the camera action
} else if (id == R.id.nav_shirtee) {
Intent i = new Intent(MainActivity.this, Shirtee.class);
startActivity(i);
} else if (id == R.id.nav_teilen) {} else if (id == R.id.nav_instagram) {
}
ich habe ein Intent erzeugt.
Nun geht die App auf aber sobald ich auf shirtee drücke, stürzt die app ab.
Das WebView funktioniert als eine eigene App aber sobald ich versuche den Code zu integrieren, geht nichts mehr.package electronics.ashbourg.whydesign63amazonshirtee;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;public class Shirtee extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//Bereich aus der _main auslesen
webView = (WebView) findViewById(R.id.webViewShirtee);WebSettings webSettings = webView.getSettings();
//JavaScript Erlauben, damit z.b Youtube möglich ist
webSettings.setJavaScriptEnabled(true);//URL einfügen
webView.loadUrl("https://www.auto-gadgets24.de/");//wenn z.b auf einen Button klickst, ist dies normalerweise mit einer URL hinterlegt und würde deshalb den Browser öffnen, dass wird damit verhindert.
webView.setWebViewClient(new WebViewClient());}
public void onBackPressed() {
if (webView.canGoBack()){
webView.goBack();
} else {
super.onBackPressed();
}}
}
-
Was meinst du mit Kasse?
Ich will bei dem drawer auf den Punkt Shirtee klicken und dann soll das Layout von shirtee kommen -
Guten Abend Leute,
ich habe den Navigation Drawer soweit vom Design fertig und habe ein Layout erstellt und möchte nun das Layout mit dem Punkt im Drawer verbinden.
In diesem Beispiel:
Shirtee (siehe Foto)Wie verknüpfe ich das Layout nun mit dem Punkt shirtee im Drawer
aktueller Code
package electronics.ashbourg.whydesign63amazonshirtee;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();return super.onOptionsItemSelected(item);
}@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();if (id == R.id.nav_amazon) {
// Handle the camera action
} else if (id == R.id.nav_shirtee) {} else if (id == R.id.nav_teilen) {
} else if (id == R.id.nav_instagram) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
} -
Ein Kumpel von mir hat aktuell ein startup, bin aber mit ihm schon im Gespräch.
Hauptsächlich besteht die Beteiligung nur aus mir.
Das Problem, wie bereits geschildert, ist aber mein noch nicht so gutes Wissen.Geld wird allerdings nur durch Google ads oder der gleichen erzielt.
-
Guten Abend Leute,
ich habe schon meine ersten kleinen Apps geschrieben.
Mein Wissensdurst ist Riesig und kann nur langsam gestillt werden.
Ich bin aktuell auf der Suche, der meine Idee mit mir gemeinsam umsetzt und mir so noch mehr über Android Studio und Java zeigt.Wäre cool wenn sich jemand bei mir melden könnte.
mfg
Chris