2012-02-12 2 views
3

내 자원 ID를 의도를 통해 다른 클래스로 전달했습니다. 그런 다음 int에서 여분을 검색하여 int에 저장합니다.Android :보기에서 리소스 ID로?

이제 getTag()를 사용할 수 있도록 해당 int를 뷰 또는 무언가로 변환하고 싶습니다. 나는 이미지 뷰에 할당 시도했지만 통과 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; 

이 인쇄 로그 캣하기 :

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); 

그 다음에는 두 번째 활동으로보기 ID뿐만 아니라이 ID가 의미있는 컨텍스트를 전달해야합니다.

그래서 첫 번째 활동에서 "(Context) this"를 추가하십시오.

두 번째 활동 컨텍스트를 복원 한 후에 :

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

그래서이 작업을 수행하려면 컨텍스트가 필요합니까? 그것은 나를 위해 어려울 것입니다 내 레이아웃으로 pageViewer : – Jonno

+0

다음 자체를 전달합니다. 첫 번째 활동에서 정상적인 개체 만들고 Extra 통해 그것을 통해 전달할 참조하십시오. 또는 모두 귀하의 활동은 동일한 응용 프로그램의 일부이며,이보기를 정적 필드로 첫 번째 활동에 넣고 다른 활동에서 Activity1.commonView로 읽습니다 – Gangnus

관련 문제