2017-06-06 2 views
-4

Ich versuche eine App zu erstellen; Wenn ich auf eine Schaltfläche klicke, öffnet sich ein Bild bei der zweiten Aktivität.Android - Wie Bild in neuer Aktivität durch Schaltflächen ID zu öffnen?

Zum Beispiel

"button1"->"image1" , 

"button2"->"image2" 

aber ich konnte nicht. Haben Sie eine Methode dafür?

+0

Möchten Sie Daten von einer Aktivität zu einer anderen übertragen? , Wie in Ihrem Fall Bild. –

+0

Überprüfen Sie den folgenden Link hat es ein sehr gutes Beispiel.
[open-an-image-in-another-activity] (https://stackoverflow.com/questions/26629678/i-want-to-open-an-image-in-another-activity-when-clicked- auf dem Gegenstand in der Liste) –

Antwort

1

In Ihrem MainActivity implementieren eine OnClickListener für die Schaltfläche:

private Button button1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    button1 = (Button) findViewById(R.id.yourItemIdInXml); 

    button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      // put Intent here 
     } 
    }); 
} 

Im Innern des onClick eine Absicht erstellen:

Intent intent = new Intent (CurrentActivity.this, ImageActivity.class); 

und setzen Sie Ihren imageId (angenommen Ihr Bild ist im Drawables Ordner und hat und ID) in die Absicht:

intent.putExtra("IMAGE", imageId); 
startActivity(intent); 

Und in den Empfangsaktivitäten onCreat e Verfahren akzeptieren diese Absicht:

private ImageView image; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_image); 

    int imageId = getIntent().getIntExtra("IMAGE", 0); // 0 is a default value 
                 // IMAGE is a string that serves as a key, can be anything just make sure it's the same as in putExtra() 
} 

Und nachdem Sie eine Imageview erstellen und setzen sie die imageId mit:

ImageView image = (ImageView) findViewById(R.id.imageIdInXml); 
image.setImageResource(imageId); 

Und für die zweite Taste, um das gleiche tun.

Es ist im Grunde die gleiche Antwort wie here nur ein bisschen detaillierter.

Verwandte Themen