ich bei android R.java behavior when a library project is addedandroid R.java Mapping Ressourcen Layouts, wenn ein Bibliotheksprojekt hinzugefügt wird
ich einige der Forschung auf meiner Frage war darauf bedacht, dass, wenn ein Bibliotheksprojekt zu jedem Android-Projekt hinzugefügt wird, gibt es zwei R. Java-Dateien erstellt.
project.R.java
public static final class layout {
public static int capture=0x7f030000;
public static int main=0x7f030001;
}
lib.R.java
public static final class layout {
public static final int add=0x7f030000;
public static final int capture=0x7f030001;
public static final int main=0x7f030002;
}
und das Projekt, das als Bibliothek gesetzt wurde hat seine eigene R.java die wie
siehtpublic static final class layout {
public static int capture=0x7f030000;
public static int main=0x7f030001;
}
Die Beispielbibliothek hat nur eine Aktivität, die ich von meiner Anwendung aus starte und diese Aktivität legt das Layoutmain fest. Nun, wenn wir sehen, dass ID für "Haupt" in R.java ist in meiner Anwendung und im Bibliotheksprojekt anders. Ich habe versucht, den Wert von ID aus der Bibliothek zu drucken und geben 0x7f030002, das ist der Wert in meiner Anwendung R.java-Datei.
Jetzt hat meine Anwendung kein Hauptlayout und in der Bibliothek, wenn ich Inhalt ein Smain setze, seine Einstellung die main.xml vom Bibliotheksprojekt !! Wenn ich das Hauptlayout zu meinem Anwendungsprojekt hinzufüge, wird die lib dieses Haupt als ihr Layout festlegen !!
Ie die ID für Haupt wird von R.java meiner Anwendung genommen und diese ID unterscheidet sich von der ID für Haupt in der Bibliothek, aber das Layout ist korrekt aus der Bibliothek ausgewählt.
Wie ist das passiert Bitte helfen
meine app Aktivität:
import com.idg.test.lib.TestLibActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class TestProjectActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i("starting","oncraete main id "+ R.layout.main);
super.onCreate(savedInstanceState);
setContentView(R.layout.add);
startActivity(new Intent(this,TestLibActivity.class));
}
}
lib Aktivität:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class TestLibActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("Library","Library main id" +R.layout.main);
setContentView(R.layout.main);
}
}
Ich glaube, ich habe das vorhin erlebt. Können Sie bitte angeben, was Sie in Ihren Unterricht importieren? –
Ich habe die Importe zu meinem que hinzugefügt. Ich importiere keinen R.Java-Datei speziell – png