Die erste App - activity_main u. fragment_main

Z

zander85

Neues Mitglied
0
Hallo Zusammen,

ich möchte als erste eigene App die Ausgänge eines Arduino-Boards mit RedFly Wifi-Shield mit meinem Smartphone steuern.
Hierzu fand ich im Netz ein Beispiel (Quelle: Kommunikation zwischen Android und Arduino mit RedFly-Shield) welches ich für meine Bedürfnisse abgeändert habe. Soweit funktioniert das wunderbar.

Wenn ich allerdings in Eclipse ein "neues Projekt" anlege und die Inhalte der funktionierenden App in die neue MainActivity kopieren möchte scheitere ich an activity_main und fragment_main. Mir ist nicht klar wo ich die Inhalte der funktionierenden App (ohne fragment) hinpacken muss...

Kurz zur Funktion: Ich habe vier Buttons über welche ich zwei Ausgänge HIGH und LOW schalte. Wenn ich einen Button drücke kommt die Fehlermeldung "Problem xyz" (s. unten).
Ich vermute das das view.getId() nicht auf das das fragment_main zugreifen kann!?

Kann mir jemand weiterhelfen?


PHP:
package de.arduinoredfly_01_menue;

import java.net.InetAddress;
import java.net.InetSocketAddress;

import de.arduinoredfly_01_menue.R;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;
import android.preference.PreferenceManager;

public class MainActivity extends Activity {
    
    WifiManager wifi;
    TextView textStatus;
    ArduinoredflyCommManager commMan;
    SharedPreferences prefs;


    //Erstellen des Menü´s
    public boolean onCreateOptionsMenu(Menu menu) {
        
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

  //Erstellen des Einstellungen-Eintrags
    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();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    
    
  //Erstellen des Layouts
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        //Fixieren auf Porträt-Orientierung (kein automatisches Bildschirmdrehen)
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        commMan = new ArduinoredflyCommManager();
        
        //Ausgeben simpler WLAN-Verbindungseigenschaften
        //textStatus = (TextView) findViewById(R.id.textStatus);
        //wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        //WifiInfo info = wifi.getConnectionInfo();
        //textStatus.setText("WiFi Status: " + info.toString());
        
        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
    }
    

    // A placeholder fragment containing a simple view.
    public static class PlaceholderFragment extends Fragment {
        
        public PlaceholderFragment() {
        }
        
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            return rootView;
        }
    }
    
    //Eventhandler für Change-Events an den Buttons (drücken)
    public void myClickHandler(View view) {
        InetAddress address;
        
        try {
            //IP festlegen
            address = InetAddress.getByName("192.168.43.57");
        }catch (Exception ex){
            Toast.makeText(this, "IP nicht erreichbar",
                    Toast.LENGTH_LONG).show();
            return;
        }
        try{
            int pin;
            
            //Port festlegen
            int port = 22;
            
            switch (view.getId()) {
            case R.id.btn_pin8_ein:
                pin = 8;
                commMan.sendDigitalCommand(pin, true, address, port);
                break;
            case R.id.btn_pin9_ein:
                pin = 9;
                commMan.sendDigitalCommand(pin, true, address, port);
                break;
            case R.id.btn_pin8_aus:
                pin = 8;
                commMan.sendDigitalCommand(pin, false, address, port);
                break;
            case R.id.btn_pin9_aus:
                pin = 9;
                commMan.sendDigitalCommand(pin, false, address, port);
                break;
            default:
                return;
            }

        }catch (Exception ex){
            Toast.makeText(this, "Problem xyz",
                    Toast.LENGTH_LONG).show();
        }
    }
}
 
die xml's musst du in den ordner
/res/layout/
kopieren...

Gruß

Der ursprüngliche Beitrag von 08:01 Uhr wurde um 08:01 Uhr ergänzt:

P.s.:_ import de.arduinoredfly_01_menue.R; <- werfe den import mal raus..
 
Hi,

ich würde es über einen kompletten Projektimport versuchen.
Du klickst also rechts in das Projektfenster und klickst auf "Import".
Dann wählst du unter General "Import existing Project" aus und gibst den Pfad zu dem runtergeladenen Ordner an.
Du kannst auch das Häckchen "Copy to my workspace" anklicken, dann hast du es gleich an der richtigen Stelle.

Jetzt müsste das Projekt schon kompiliert und gestartet werden können. (Wenn der vorrige Entwickler auch gut programmiert hat)

Zu dem geposteten Code: Du schluckst alle Fehlermeldungen und gibst eine nicht spezifizierte Fehlermeldung aus. Das ist kein guter Programmierstiel.
 

Ähnliche Themen

U
  • unerfahrenerAppEntwickler
Antworten
3
Aufrufe
704
swa00
swa00
5
Antworten
22
Aufrufe
1.418
590239
5
Manny87
  • Manny87
Antworten
11
Aufrufe
161
swa00
swa00
Zurück
Oben Unten