Migrate Android Code

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Sunderland85, 20.02.2012.

  1. Sunderland85, 20.02.2012 #1
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    Hallo Leute,
    ich bin gerade dabei mir selbst die Android Programmoerung beizubirngen,
    allerdigns stehe ich gerade vor dem Problem, das alle Tutorials sei
    Tab, Blutooth, Google Maps etc. immer auf alten Code basieren,
    wo ich meistens den Zugriff R.id.irgendwas nicht mehr erlaubt ist.

    Das Problem ist als das ich die Klasse R die ich ja auch nicht verändern kann, weil Eclipse sie wieder auf dem Urpsrungszsutand zurückstuft.

    Gibt es da eine Anleitung, oder vll ein bereits vorhandener Foreneintrag, der mir weiterhelfen könnte?

    danke euer Sunderland
     
  2. the_alien, 20.02.2012 #2
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Du könntest z.B. das alte Android SDK nehmen wenn du meinst es liegt daran.
    Ich denke eher, dass der Fehler entweder am Import von R oder nicht vorhandenen XML Dateien liegt.
     
  3. Sunderland85, 20.02.2012 #3
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    nein daran liegt es nicht ich bneutze SDK 7, worauf sich android meldung bezieht ist 14?!?
    Ich verstehe es nicht..
     
  4. the_alien, 20.02.2012 #4
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Vielleicht möchtest du ein paar mehr Informationen teilen. Die Codeschnippsel und Beispielapps von Google funktionieren im Normalfall ziemlich gut.
     
  5. Sunderland85, 20.02.2012 #5
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    Code:
       private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
    
                // When discovery finds a device
                if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                    // Get the BluetoothDevice object from the Intent
                    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                    // If it's already paired, skip it, because it's been listed already
                    if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
                        mNewDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
                    }
                // When discovery is finished, change the Activity title
                } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
                    setProgressBarIndeterminateVisibility(false);
                    setTitle(R.string.select_device);
                    if (mNewDevicesArrayAdapter.getCount() == 0) {
                        String noDevices = getResources().getText(R.string.none_found).toString();
                        mNewDevicesArrayAdapter.add(noDevices);
                    }
                }
            }
        };
    Es ist eigentlich egal welchen Code ich reinpsote es ist immer der gleiche fehler.
    Immer bei:
    Code:
    R.string.attribut
     
  6. the_alien, 20.02.2012 #6
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Existiert der String denn in deiner string.xml?
     
  7. K69, 20.02.2012 #7
    K69

    K69 Android-Hilfe.de Mitglied

    Beiträge:
    115
    Erhaltene Danke:
    8
    Registriert seit:
    28.12.2009
    "Project > Clean..." schon versucht?
     
  8. Sunderland85, 20.02.2012 #8
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    ja geht nicht R.string.<atrribut>

    ist imer die meldung dass ich den code umschreiben muss!

    Das ist ein Tutoiral code aus dem web der immer funktioniert hat
    früher bie anderen mitlgiedern
     
  9. JanF, 20.02.2012 #9
    JanF

    JanF Android-Experte

    Beiträge:
    594
    Erhaltene Danke:
    79
    Registriert seit:
    31.03.2011
    Welches R importierst Du denn?
    Code:
    import android.R
    oder
    Code:
    import [deinPaketName].R 
    ?
     
  10. Sunderland85, 20.02.2012 #10
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    Code:
    import android.R
    das wonach er verlangt.
    dann ist aber das jewielige Atrribut unterstrichen er verlangt dass ich den code umschreibe. Ein statischer Zugriff sei nicht mehr erlaubt
     
  11. swordi, 20.02.2012 #11
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    android.R kann nicht deine strings haben.
     
  12. Sunderland85, 20.02.2012 #12
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    wie soll ich das dann umschreiben?

    Alle Tutorials die ja früher funktioniert haben, verlangt elcipse nach diesem R.
    Ich versteh nur bahnhof, ich weiss dass string.xml die strings hat.
     
  13. JanF, 20.02.2012 #13
    JanF

    JanF Android-Experte

    Beiträge:
    594
    Erhaltene Danke:
    79
    Registriert seit:
    31.03.2011
    Du musst
    Code:
    import <DeinPaketName>.R
    importieren. Natürlich verlangt eclipse nach EINEM R. Wenn Du die falsche Klasse importierst, kann es aber nicht funktionieren.
     
  14. Sunderland85, 20.02.2012 #14
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
  15. Sunderland85, 20.02.2012 #15
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    Code:
    package de.android.sensor;
    
    
    
    
        import de.android.sensor.R;
    import android.R;
    import android.app.Activity;
        import android.graphics.Color;
        import android.hardware.Sensor;
        import android.hardware.SensorEvent;
        import android.hardware.SensorEventListener;
        import android.hardware.SensorManager;
        import android.os.Bundle;
        import android.view.View;
        import android.view.Window;
        import android.view.WindowManager;
    import android.widget.Toast;
    
        public class SensorTestActivity extends Activity implements SensorEventListener {
            private SensorManager sensorManager;
            private boolean color = false; 
            private View view;
            private long lastUpdate;
    
            
        /** Called when the activity is first created. */
    
            @Override
            public void onCreate(Bundle savedInstanceState) {
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
              
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                view = findViewById(R.id.textView);
                view.setBackgroundColor(Color.GREEN);
    
                sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
                sensorManager.registerListener(this,
                        sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                        SensorManager.SENSOR_DELAY_NORMAL);
                lastUpdate = System.currentTimeMillis();
            }
    
            @Override
            public void onSensorChanged(SensorEvent event) {
                if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
                    float[] values = event.values;
                    // Movement
                    float x = values[0];
                    float y = values[1];
                    float z = values[2];
    
                    float accelationSquareRoot = (x * x + y * y + z * z)
                            / (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
                    long actualTime = System.currentTimeMillis();
                    if (accelationSquareRoot >= 2) //
                    {
                        if (actualTime - lastUpdate < 200) {
                            return;
                        }
                        lastUpdate = actualTime;
                        Toast.makeText(this, "Device was shuffed", Toast.LENGTH_SHORT)
                                .show();
                        if (color) {
                            view.setBackgroundColor(Color.GREEN);
                            
                        } else {
                            view.setBackgroundColor(Color.RED);
                        }
                        color = !color;
                    }
    
                }
    
            }
    
            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
                // TODO Auto-generated method stub
    
            }
    
            @Override
            protected void onResume() {
                super.onResume();
                // register this class as a listener for the orientation and
                // accelerometer sensors
                sensorManager.registerListener(this,
                        sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                        SensorManager.SENSOR_DELAY_NORMAL);
            }
    
            @Override
            protected void onPause() {
                // unregister listener
                sensorManager.unregisterListener(this);
                super.onStop();
            }
        }
    
    hier ein anderes beispiel:
    imporitere ich android.R; sind nur die atribute rot
    importeire ich packet.R ist der import rot
     
  16. the_alien, 20.02.2012 #16
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Hast du deine Imports denn mal gefixt?

    edit:
    Die Klasse R wird generiert. Das heißt sie wird erst beim kompilieren erstellt. Importiere deine R Klasse, aus deinem Projekt und dann geh mal auf "Project -> Clean".
    Wenn es dann noch nicht geht hast du noch andere Fehler im Projekt die du beheben musst.
     
  17. JanF, 20.02.2012 #17
    JanF

    JanF Android-Experte

    Beiträge:
    594
    Erhaltene Danke:
    79
    Registriert seit:
    31.03.2011
    Naja Du darfst Klassen mit gleichem Namen auch nicht mehrfach importieren. Du solltest Deine Wissenlücken im Bereich java bei Gelegenheit verkleinern.
     
  18. Sunderland85, 20.02.2012 #18
    Sunderland85

    Sunderland85 Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    20.02.2012
    nein du hast das nicht verstanden.
    importiere ich das eine oder das andere.
    d.h.
    also:
    d.h. <packetname>.R existiert nicht wie den auch, android nimmt nur die R kalsse her für Konstanten.
    der import wird wegen nicht vorhandensein rot.

    den anderen import velrngt eclipse auf teufel komm raus. selbst wenn ich
    diesen paket.R import versuche.
     
  19. the_alien, 20.02.2012 #19
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Deine R Klasse muss auch erst vom System erstellt werden. Importiere dein R und mach ein Clean auf dein Projekt.
     
  20. swordi, 20.02.2012 #20
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    Zuerst Grundlagen lernen. Sonst hat das hier keinen sinn

    Gesendet mit der Android-Hilfe.de-App
     
    the_alien bedankt sich.

Diese Seite empfehlen