2012-02-12 106 views
3

我已經通過意向傳遞了我的資源ID到另一個類。然後我從intent中檢索額外的內容並將其存儲在int中。Android:查看資源ID?

現在我想獲得該int轉換成視圖或東西,以便我可以使用getTag()?我試圖將其分配到的ImageView,但一直得到空指針

通過:

   int resourceId = v.getId(); 

      Intent intent = new Intent(FetchMenu.this,FetchContent.class); 
      intent.putExtra("ResourceId",resourceId); 
      startActivity(intent);  

收稿日期:

   int id; 

      Intent callingIntent = getIntent(); 
      int getView= callingIntent.getIntExtra("ResourceId", 1); 
      id = getView; 

這版畫的logcat:

System.out.println("Resource ID: " + id); 

Logcat:"Resource ID: 2131099660" 

這是給我的空指針:

   View v = (View)findViewById(id);     

      String str=(String) v.getTag(); 

      System.out.println("Tag : " + str); 

謝謝

+1

在哪裏的問題,好嗎? – Gangnus 2012-02-12 20:56:16

+0

我想將接收到的int轉換成某種視圖? – Jonno 2012-02-12 20:59:22

回答

1

視圖來自int類型。所以,你可以把佈局附加在意圖:

final Intent intent = new Intent(this,Activity2.class); 
intent.putExtra("layout",R.layout.mylayout); 
startActivity(intent); 

,然後在活性2:

Bundle bundle = getIntent().getExtras(); 
final int iLayout = bundle.getInt("layout"); 
setContentView(iLayout); 
0

在第一個活動,你應該將活動連接到包含這種觀點的佈局。

setContentView(R.layout.layout1); 

之後,您不得不傳遞給第二個活動,不僅僅是查看id,而是該id有意義的上下文。

因此,在第一個活動中把「(上下文)這個」放到額外的位置。

在第二活動恢復上下文後:

View view = (View)context.findViewByid(id); 
+0

所以我需要上下文才能做到這一點?這對我來說會很困難,因爲我的佈局可能是我使用pageViewer( – Jonno 2012-02-12 21:31:41

+0

)的其中一個:然後傳遞視圖本身,使其成爲第一個活動中的普通對象,並通過Extra將其傳遞給它。您的活動是同一應用程序的一部分,將此視圖作爲靜態字段放入第一個活動中,並簡單地將其視爲來自其他活動的Activity1.commonView – Gangnus 2012-02-12 21:35:49