Bilder an mehrere Fenster der App setzen

  • 8 Antworten
  • Neuester Beitrag
Diskutiere Bilder an mehrere Fenster der App setzen im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Z

zblack

Gast
hallo alle android freunde.
ich habe eine frage.
ich habe im Ordner drawable mehrere Bilder. Diese Bilder habe ich auf ImageButtons gepackt. Jetzt habe ich mehrere xml seiten mit ImageViews auf den die Bilder sein sollen. Die xml Seiten sind alle unterschiedlich aufgebaut und für unterschiedliche Zwecke gedacht.
Wie kann ich es so machen, dass beim klicken eines bestimmten ImageButtons, das Bild welches auf diesem Imagebutton ist, in allen Fenstern der App erscheint ?

Z.b die App hat insgesamt 6 Seiten. Wenn man beim Starten der App auf Button mit Mickey Mouse klickt, dann erscheint das BIld von Mickey Mouse in auf jedem Fenster der App.

MfG.
 
S

swordi

Lexikon
musst dir halt das geklickte bild bzw dessen id speichern und bei jeder activity dann setzen

stichwort: sharedpreferences oder intent extras
 
Z

zblack

Gast
swordi schrieb:
musst dir halt das geklickte bild bzw dessen id speichern und bei jeder activity dann setzen

stichwort: sharedpreferences oder intent extras
Danke für die Antwort. Ich bin leider ein totaler Anfänger in Sachen Android.
Meinst du das mit intent extras soetwas wie : Intent x = new Intent (....); x.putExtras (...) ?
Kannst du vlt ein kleines Beispiel machen wie du das mit ids der Bilder abspeichern meinst ? Vielen dank.
 
Z

zblack

Gast
Habe mir da so ein Code gebastelt.
Die erste seite mit den Buttons wird angezeigt , doch beim Klicken auf Button explodiert die App.

Code:
public class TestActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
    ImageButton button_ai;
    ImageButton button_test;
    ImageView imageView;
    ImageView imageView2;

    Bitmap bitmap_ai;
    Bitmap bitmap_test;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       button_ai = (ImageButton) findViewById(R.id.imageButton1);
       button_test = (ImageButton) findViewById(R.id.imageButton2);
       imageView = (ImageView) findViewById(R.id.iv1);
       imageView2 = (ImageView) findViewById(R.id.iv2);
       bitmap_ai = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
       bitmap_test = BitmapFactory.decodeResource(getResources(), R.drawable.test);
       button_ai.setOnClickListener(this);
       button_test.setOnClickListener(this);
    }
    
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId())
        {
        case R.id.imageButton1:
            imageView.setImageBitmap (bitmap_ai);
            imageView2.setImageBitmap (bitmap_ai);
            Intent i = new Intent (this, t2.class);
            startActivity(i);
            break;
            
        case R.id.imageButton2:
            imageView.setImageBitmap (bitmap_test);
            imageView2.setImageBitmap (bitmap_test);
            Intent i2 = new Intent (this, t3.class);
            startActivity(i2);
            break;
        }
    }
}
 
S

swordi

Lexikon
sorry, aber wenn du eine antwort willst, solltest du "explodiert" so ausdrücken, dass ein entwickler damit was anfangen kann.

=> logcat.
 
Z

zblack

Gast
entschuldigung für meine ausdrucksweise.
beim klicken auf das Button kommt die Meldung : "The Aplication Test (process t.est) has stopped unexpectedly. Please try again.

Logcat sagt dann folgendes :
11-01 22:23:37.115: D/AndroidRuntime(238): Shutting down VM
11-01 22:23:37.115: W/dalvikvm(238): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
11-01 22:23:37.115: E/AndroidRuntime(238): Uncaught handler: thread main exiting due to uncaught exception
11-01 22:23:37.135: E/AndroidRuntime(238): java.lang.NullPointerException
11-01 22:23:37.135: E/AndroidRuntime(238): at t.est.TestActivity.onClick(TestActivity.java:49)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.View.performClick(View.java:2364)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.View.onTouchEvent(View.java:4179)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.View.dispatchTouchEvent(View.java:3709)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-01 22:23:37.135: E/AndroidRuntime(238): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
11-01 22:23:37.135: E/AndroidRuntime(238): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
11-01 22:23:37.135: E/AndroidRuntime(238): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.os.Handler.dispatchMessage(Handler.java:99)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.os.Looper.loop(Looper.java:123)
11-01 22:23:37.135: E/AndroidRuntime(238): at android.app.ActivityThread.main(ActivityThread.java:4363)
11-01 22:23:37.135: E/AndroidRuntime(238): at java.lang.reflect.Method.invokeNative(Native Method)
11-01 22:23:37.135: E/AndroidRuntime(238): at java.lang.reflect.Method.invoke(Method.java:521)
11-01 22:23:37.135: E/AndroidRuntime(238): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11-01 22:23:37.135: E/AndroidRuntime(238): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
11-01 22:23:37.135: E/AndroidRuntime(238): at dalvik.system.NativeStart.main(Native Method)
11-01 22:23:37.175: I/dalvikvm(238): threadid=7: reacting to signal 3
11-01 22:23:37.216: I/dalvikvm(238): Wrote stack trace to '/data/anr/traces.txt'
 
T

Tom299

Stammgast
null pointer in zeile 49 ... ich nehme mal an, daß eine image view null ist. sind beide image views in deiner main.xml oder in verschiedenen layouts? weil dann muß du für die 2. image view erst mal inflaten ...
 
Z

zblack

Gast
Tom299 schrieb:
null pointer in zeile 49 ... ich nehme mal an, daß eine image view null ist. sind beide image views in deiner main.xml oder in verschiedenen layouts? weil dann muß du für die 2. image view erst mal inflaten ...
ja ,die imageViews sind in verschiedenen xmls.
wie soll ich die inflaten ?
 
T

Tom299

Stammgast
z.B. so:
Code:
        LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        LinearLayout layoutUpdate = (LinearLayout)inflater.inflate(R.layout.service_update, null);
        TextView tvUpdate = (TextView)layoutUpdate.findViewById(R.id.service_update_tvInfo);
        if (tvUpdate != null) {
            System.out.println("juhuuuu");
        }
 
Ähnliche Themen - Bilder an mehrere Fenster der App setzen Antworten Datum
8
6
8