Wie kommuniziere ich zwischen zwei Fragmenten?

1 Antwort

Kennst jemand eine gutes Buch um Java zu lernen?

Hey,

ich gehe demnächst in den Urlaub und wollte mir dabei was mitnehmen. Da ich grade an einer App arbeite und die schon recht groß ist wollte ich mir ein Buch zur Java-Programmierung holen aber ich finde keine richtigen. Es müsste auf Android spezialisiert sein, da ich Methoden benutzen werde die es nur bei android gibt und nicht aus puren Java-Code bestehen; z.B. wwill ich die Benutzeroberflache ändern und FFragmente statt Acitvities benutzen. Was super wäre eine Ausgabe die auch wirklich für Android Studio gedacht ist, denn Eclipse hat im gegensatz zu Android Studio ein paar Unterschiede, die wenn man nicht aufpasst zu Verwirrung führen können.

Ich habe schon mal ein Buch gefunden, das werde ich mir holen , weil dort Fragmente u.Ä. erklärt werden aber nicht alles was ich benötige.

Wenn es wirklich kein passendes Buch auf deutsch dazu gibt muss ich mich wohl mit dem Englischen zufrieden geben ^^.

Wenn ihr/du ein auch gefunden habt , dass evt. passen könne Antwortet ruhig (auf gerne mit Link) und ich werde es mir ansehen.

MfG Alex

...zur Frage

Android Studio = Java und HTML?

Ich habe mir die Grundkentnisse von Java angeeignet um mit Android Studio Apps zu programmieren, doch dieser Code sieht mir nicht nach Java aus. Muss ich zusätzlich HTML lernen um richtig mit Android Studio umzugehen? Und ist das überhaupt HTML?

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="<a href="http://schemas.android.com/apk/res/android">http://schemas.android.com/apk/res/android</a>"
    xmlns:app="<a href="http://schemas.android.com/apk/res-auto">http://schemas.android.com/apk/res-auto</a>"
    xmlns:tools="<a href="http://schemas.android.com/tools">http://schemas.android.com/tools</a>"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.aaronminijob.taschenrechner.MainActivity"
>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Rechner"
        android:id="@+id/textView" />

P.S bin ein Anfänger was Programmieren usw angeht.

Danke LG Aaron

...zur Frage

Ist Android Apps Programmieren wirklich so schwer?

Hallo.

Also normalerweiße bin gewohnt im C# mit Windows Forms Anwendung zu Programmieren, und dort komme ich sehr gut damit zurecht.

Ja dann habe ich mit Android Studio Heruntergeladet, und habe dann 2 Video Tutorial geschaut wie das funktioniert, und dann habe ich selber Probiert etwas zu Programmieren, und ich muss sagen das der Bedienung echt nicht gut ist. Denn bei Design Elemente Positionieren geht schlechter als normale Windows Forms. Und man kennt das schon bei Windows Forms das man einfach Button rein tut, und Doppel Klick auf Button drückt und schon wurde der Code Automatisch erzeugt was da passieren soll wenn man Button drückt, und das ist bei Android Programmieren nicht so, denn dort muss man Manuell im Code schreiben, und auch nicht nur das, damit man überhaupt auf Elemente im Code verändern können muss man erst die Variable erstellen von Variable diese Elemente zugreifen, und auch bei Button mussten mal alles Manuell im Code schreiben was da passieren soll denn der Button gedrückt wird.

Ich verstehe das nicht, wieso hat Android Studio Entwickler auch nicht so gelöst, das man einfach nur Doppelklick auf Button drückt das der Code Automatisch erzeugen wird was mit Button klick passieren soll (So wie bei Windows Forms).

Und ich frage mich, wie kann man so gute Apps entwickeln wenn es beim Manuelle Code schreiben einfach viel Zeit kostet und das durcheinander bringt.

...zur Frage

Android App: Daten über POST an PHP Script senden

Hey, ich hab mal wieder eine Frage :D

Ich will eine App schreiben, die einfach Daten aus Textfeldern an meinen Webspace bei bpaced sendet. Diesen Code habe ich gefunden:

package de.vollkanone.sendmail;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {

    public EditText mailtext;
    public Button senden;
    public EditText empf;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mailtext = (EditText) findViewById(R.id.mailtext);
        senden = (Button) findViewById(R.id.button);
        empf = (EditText) findViewById(R.id.an);
        
        senden.setOnClickListener(this);
        
    }


    @Override
    public void onClick(View arg0) {
        
        String senden1 = mailtext.getText().toString();
        String senden2 = empf.getText().toString();
        
        // absenden
        
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost("<a href="http://www.uptoweb.bplaced.net/mailsenden.php">http://www.uptoweb.bplaced.net/mailsenden.php</a>");  
        
        List<NameValuePair> postlist = new ArrayList<NameValuePair>();
        postlist.add(new BasicNameValuePair("senden1", senden1));
        postlist.add(new BasicNameValuePair("senden2", senden2));
        
        try {
               post.setEntity(new UrlEncodedFormEntity(postlist));
            } catch (UnsupportedEncodingException e) {
               throw new AssertionError("Encoding Error");
            }
        
        
        try {
              HttpResponse response = client.execute(post);
            } catch (ClientProtocolException e) {
               throw new AssertionError("Client Protocol Error");
            } catch (IOException e) {
               throw new AssertionError("IO Error");
            }
        
        
    }




}

Nur leider hängt sich das ganze auf wenn ich auf den Knopf drücke :(

Hat jemand ne Idee warum es nicht geht und wie es gehen könnte?

LG

...zur Frage

Warum funktioniert der setOnClickListener() nicht?

Ich möchte, dass durch das RelativeLayout (id: account_test) eine neue Seite aufgerufen wird. Dazu verwende ich den FragmentManager. Im setOnCllickListener wird einfach ein wert zurückgegeben. Dieser wert wird in einer if-Verzweigung verglichen und wenn dies übereinstimmt, dann kommt der FragmentManager ins Spiel.

Java-Code:

public class Sidebar extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{

String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sidebar);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);


    //Initialising Components of layouts

    //Search


    //Settings
    ImageView account = (ImageView)(findViewById(R.id.account_image));
    ImageView accountImageActionSettings = (ImageView) findViewById(R.id.account_image);
    View aboutMeImageActionSettings = findViewById(R.id.about_me);
    View generalImageActionsettings = findViewById(R.id.general);
    RelativeLayout test = (RelativeLayout)findViewById(R.id.account_test);

    test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            id = "test";
        }
    });
    FragmentManager fragmentManager = getFragmentManager();


    if (id.equals("test") )
    {
        fragmentManager.beginTransaction().
                replace(R.id.content_frame, 
                        new Settings())
                .commit();
    }

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    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.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

} }

Android-Monitor: FATAL EXCEPTION: main Process: com.vincenzkruesmann.smartifact, PID: 10322 java.lang.RuntimeException: Unable to start activity ComponentInfo{ com.vincenzkruesmann.smartifact/com.vincenzkruesmann.smartifact.Sidebar}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RelativeLayout.setOnClickListener(android.view$OnClickListener)

...zur Frage

Java Intellij Plugin?

Wollte in ein Plugin eine UUID random in Intellij einfügen bei einer tastenkombi(shortcuts)

Intellij Plugin wo man über shortcut eine UUID einfügt

import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.application.ApplicationManager; import java.util.UUID;

public class RandomUUID extends AnAction {

@Override
public void actionPerformed(AnActionEvent e) {
    // TODO: insert action logic here
    ApplicationManager.getApplication().invokeLater(new Runnable() {
        @Override
        public void run() {
            ApplicationManager.getApplication().runWriteAction(new Runnable() {
                @Override
                public void run() {
                    UUID.randomUUID();
                }
            });
        }
    });
}

}

...zur Frage

Was möchtest Du wissen?