簡體   English   中英

使用Android Studio中的Java代碼將XML資源從一個活動傳遞到另一個活動?

[英]Pass a XML resource from one activity to another activity using java code in Android Studio?

我想使用Java代碼將XML資源從一個活動傳遞到另一個活動嗎? 我不想為不同的按鈕創建單獨的不同活動。

ImageButton imageBttn = (ImageButton)findViewById(R.id.imageButton1);

imageBttn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(MainActivity.this, info.class));
    }
});

偽代碼來解釋我要做什么:

如果單擊了BUTTON_1-將 漩渦.png 傳遞到info.class

如果單擊了BUTTON_2-將 golden.png 傳遞給info.class

如果單擊了BUTTON_3,通過arcade.png

imageBttn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, info.class)
        intent.putExtra("image",R.drawable.ic_search_grey);
            startActivity(intent);

        }
    });

在Mainactvitiy上獲取int可繪制

    int res = getIntent().getIntExtra("image", -1);
    if(res > -1) {
        Drawable drawable = getResources().getDrawable(res, null);
 imgBtn.setImageDrawable(drawable);
    }

InfoActivity.java

public class InfoActivity extends Activity {

  private static final String EXTRA_IMAGE = "image";

  public static void launch(Activity activity, @DrawableRes int imageResId) {
    Intent intent = new Intent(activity, InfoActivity.class);
    intent.putExtra(EXTRA_IMAGE, imageResId);
    activity.startActivity(intent);
  }

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

    int imageResId = getIntent().getIntExtra(EXTRA_IMAGE, -1);
    if (imageResId == -1) {
      throw new IllegalArgumentException(EXTRA_IMAGE);
      // or set error/default image resource id
    }

    // ... something to do with imageResId
  }
}

MainActivity.java

    button1.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        InfoActivity.launch(MainActivity.this, R.drawable.swirl);
      }
    });

    button2.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        InfoActivity.launch(MainActivity.this, R.drawable.golden);
      }
    });

    button3.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        InfoActivity.launch(MainActivity.this, R.drawable.arcade);
      }
    });
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM