2016-08-04 46 views
0

Also habe ich im Grunde zwei Aktivitäten, und wenn ich von der zweiten Aktivität zur ersten Aktivität gehe, möchte ich die Transparenz von der ImageButton in der ersten Aktivität ändern. Wie kann ich das erreichen? (Der Code ist von der 2. Aktivität)Wie kann ich den ImageButton von einem anderen Layout ändern?

public class StoreActivity extends Activity { 

    ImageButton pokeb; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.store_layout); 
     pokeb = (ImageButton)findViewById(R.id.pokeball); 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 

     pokeb.setAlpha(1f); 
    } 
} 
+0

Wenn ich mich nicht irre, hast du zwei Aktivitäten mit verschiedenen Layouts und du willst Ändern der Benutzeroberfläche der ersten Aktivität, wenn Sie von der zweiten Aktivität zurückkehren. – Shaishav

+0

yeah right ^^ zwei Aktivitäten ^^ statt Layouts, –

Antwort

1

Sie dies mit startActivityForResult() zum Starten der zweite Aktivität erreichen können. Über in der zweiten Aktivität können Sie Daten unter Verwendung setResult() setzen und die in Ihrer ersten Aktivität in onActivityResult() empfangen werden, wenn Sie zurückkommen, wo Sie die erforderlichen Änderungen vornehmen können.

Es gibt zahlreiche Quellen, aus denen Sie den Code für das obige Setup erhalten können, einschließlich here und here

0

Sie können einfach eine statische Variable definieren (als Flag) in der ersten Aktivität (FirstActivity.java).

public static boolean changeImageButton = false; 

und prüfen, ob changeImageButton in onResume wahr ist():

if (changeImageButton) { 
    pokeb.setAlpha(1f); 
    changeImageButton = false; // reset the value. 
} 

In zweiter Aktivität, in onBackPressed():

FirstActivity.changeImageButton = true; 
2

Sie die transpetancy der Taste auf dem ändern FirstActivity, wenn Sie von FirstActivity zu SecondActivity navigieren

1

Sie können eine Inte senden nt mit action in onBackPressed() bei deiner ersten Aktivität und setze einen broadcastReciver auf diese Absicht in der zweiten Aktivität und ändere die alphabete onRecive()