2012-02-12 18 views
3

私は自分のリソースIDをインテントを通じて別のクラスに渡しました。私は意図から余分なものを取り出し、intに格納します。Android:閲覧中のリソースID?

ここでgetTag()を使用できるように、そのintをビューなどに変換する必要がありますか?私はImageViewのに代入しようとしたが、合格にNullPointer

取得保管:

   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" 

これは私を与えているのにNullPointer :

   View v = (View)findViewById(id);     

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

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

ありがとうございました

+1

質問は、してくださいますか? – Gangnus

+0

受信したintを何らかのビューに変換したいですか? – Jonno

答えて

1

ビューはint型に由来します。だから、テントにエクストラとしてレイアウトを置くことができます。

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

そして、あなたのActivity2に:

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

を最初のアクティビティでは、このビューを含むレイアウトに活動を接続する必要があります。

setContentView(R.layout.layout1); 

その後、2番目のアクティビティにはビューIDだけでなく、このIDに意味があるコンテキストを渡す必要があります。

したがって、最初のアクティビティでは、 "(Context)this"を余分に入れてください。第二の活動にコンテキストを復元した後

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

私はこれを行うためにはコンテキストが必要ですか?私のレイアウトは、私がpageViewerを使用しているので、私のレイアウトは多くのものになる可能性があります:( – Jonno

+0

その後、ビュー自体を渡します。最初のアクティビティでは通常のオブジェクトにし、Extraを通して参照を渡します。あなたのアクティビティは同じアプリケーションの一部です。このビューを最初のアクティビティに静的フィールドとして入れ、他のアクティビティからActivity1.commonViewとして読み込みます – Gangnus