2012-02-12 105 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