Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android ViewPager裡的所有圖片設置監聽打開同一活動顯示不同圖片,

Android ViewPager裡的所有圖片設置監聽打開同一活動顯示不同圖片,

編輯:關於android開發

Android ViewPager裡的所有圖片設置監聽打開同一活動顯示不同圖片,


Android ViewPager裡的所有圖片設置監聽請看前一文章

為了省時所以2層菜單只做一個點擊任意圖片後顯示相應圖片的活動

關鍵點是每個點擊對應的圖片如何傳參給顯示的活動

因為只啟動一個活動,所以要把對應要顯示的圖片告訴活動,顯示圖片的代碼

demoimageview = (ImageView) findViewById(R.id.demoimageView);
demoimageview.setImageResource(imageid);

那就是要把顯示的圖片ID傳過去,但是ViewPager裡的圖片都是在布局裡設置好的

如何設置對應要顯示的圖片呢,如果在布局那裡把要顯示的圖片寫好,用的時候讀出來不就行了.

查資料後有個android:tag可用,再查有SetTag()和GetTag(),什麼都可放,但是SetTag()要在

代碼裡執行,不想為每個圖片都執行一次,只想增加android:tag,但參考下面例子發現android:tag

好像只能放字符串

http://blog.csdn.net/xxyy888/article/details/47019143

自己嘗試這樣寫 android:tag="@drawable/tuijian_01" GetTag()後轉成int,但傳過去發生錯誤

多次測試後決定用字符串來判斷,找到通過字符串查找圖片資源ID的方法

http://blog.csdn.net/wo550415979/article/details/8786577

http://www.tuicool.com/articles/7vmaUrv

最終解決問題

布局裡

android:id="@+id/page1_item1"
android:tag="tuijian_d01"

tuijian_d01就是想要對應ID顯示的圖片名,先設置監聽,通過ID來判斷然後GetTag,得到字符串

然後查找圖片資源ID,傳參,啟動活動,代碼如下

監聽的代碼,所有點擊都啟動同一活動

    @Override
    public void onClick(View view) {
        switch(view.getId()){
            case R.id.mainpagelogo:
                mOpenTabHost.setCurrentTab(1);
                break;
            default:
                //Toast.makeText(this,"Click ok"+view.getId(), Toast.LENGTH_SHORT).show();


                Intent intent = new Intent(this, DemoImageViewActivity.class);

                //從布局中取Tag
                Object tag = view.getTag();
                //如果沒有設置Tag就退出
                if (tag == null) {
                    break;
                }
                String test = tag.toString();
                //ctx.getPackageName()
                //Context ctx = getBaseContext();
                //通過字符串查找圖片資源ID,如果this出錯就有上面的方法
                int imageid = getResources().getIdentifier(test, "drawable", this.getPackageName());

                //把取到的ID傳到下個活動
                intent.putExtra("ImageID", imageid);
                startActivity(intent);
                break;
        }

    }

 

啟動的活動

public class DemoImageViewActivity extends Activity {

    private ImageView demoimageview;

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

        Intent intent = getIntent();
        int imageid = intent.getIntExtra("ImageID", 0);

        if (imageid == 0) {
            finish();
        }

        demoimageview = (ImageView) findViewById(R.id.demoimageView);
        demoimageview.setImageResource(imageid);
        demoimageview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              finish();
            }
        });

    }
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved