2012-02-10 3 views
-2

내 프로젝트에서 나는 이미지를에 보관했습니다. 나는 각 카테고리 이미지를 클릭하면 나는 다른 페이지 정적에 자사의 카테고리 ID을 통과하고 새 페이지에 해당 범주의 당김 이미지를 설정하고있다.값을 안드로이드에서 한 페이지에서 다른 페이지로 정적으로 전달하는 방법은 무엇입니까?

내 코드 :

Firstpage.java

public static String categoryid; 

category1.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View view) 
    { 
    categoryid="0"; 
    Intent myIntent = new Intent(view.getContext(),Nextpage.class); 
    startActivityForResult(myIntent, 0); 
    } 
}); 
category2.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View view) 
    { 
    categoryid="1"; 
    Intent myIntent = new Intent(view.getContext(),Nextpage.class); 
    startActivityForResult(myIntent, 0); 
    } 
}); 
category3.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View view) 
    { 
    categoryid="2"; 
    Intent myIntent = new Intent(view.getContext(),Nextpage.class); 
    startActivityForResult(myIntent, 0); 
    } 
}); 

Nextpage.java

public static String catid = Firstpage.categoryid; 
      ImageView categorytype=(ImageView)findViewById(R.id.imageView1); 

      if(catid=="0") 
      { 
       categorytype.setBackgroundResource(R.drawable.image1); 
      } 

      else if(catid=="1") 
      { 
       categorytype.setBackgroundResource(R.drawable.image2); 
      } 
      else if(catid=="2") 
      { 
        categorytype.setBackgroundResource(R.drawable.image3); 
      } 
나는 카테고리 이미지,321 클릭하고

처음 0 범주 ID을 다음 페이지로 전달하고 특정 이미지가 다음 페이지에 설정됩니다. 그 후 나는 뒤로 버튼 (안드로이드 뒤로 버튼)을 클릭하고 Firstpage.java에 가서 다른 이미지를 다시 클릭했다. 그러나 이번에도 동일한 이미지가 저장됩니다. 카테고리 ID가 변경되지 않았습니다. 카테고리 ID가 새로 고침되지 않습니다 ... 카테고리 ID를 새로 고치는 방법은 무엇입니까? 어떤 제안 대신 당신이로 비교해야, ..... 당신은 == 연산자로 두 문자열을 비교하는

답변

0

정적 변수를 사용하지 마십시오. 인 텐트를 통해 카테고리 ID를 Nextpage 활동에 전달하십시오. Firstpage.java에서 :

public static final String CATEGORY_KEY = "category"; 

category1.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View view) 
    { 
    Intent myIntent = new Intent(this,Nextpage.class); 
    myIntent.putExtra(CATEGORY_KEY, "0"); 
    startActivityForResult(myIntent, 0); 
    } 
}); 

그런 Nextpage.java의 onCreate(Bundle) 방법을 검색 :

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Intent intent = getIntent(); 
    String categoryid = intent.getStringExtra(Firstpage.CATEGORY_KEY); 
    . . . 
} 

당신의 방법이 작동하지 않는 이유는 Nextpage.catid 클래스가로드 될 때 초기화된다, 클래스가 언로드되고 다시로드해야하는 경우가 아니라면 할당 문은 다시 실행되지 않습니다.

+0

안녕하세요. 고맙습니다 ... 나는 그 의도를 통해 가치를 전달했습니다. 이제는 잘 작동합니다 .... – RaagaSudha

1

감사 방법과 동일합니다, 다음 시도 :

if(catid.equals("0")) 
      { 
       categorytype.setBackgroundResource(R.drawable.image1); 
      } 

      else if(catid.equals("1")) 
      { 
       categorytype.setBackgroundResource(R.drawable.image2); 
      } 
      else if(catid.equals(2")) 
      { 
        categorytype.setBackgroundResource(R.drawable.image3); 
      } 
+0

그건 문제가되지 않습니다. OP는 문자열 리터럴을 사용하므로이 경우 ==는 String 인터 네킹 때문에 실제로 작동합니다. –

1

나는 문제는 당신이 비교 여기에 생각 이 문자열을 사용하는 문자열 값 if(catid=="0") 어떤 비교를 사용해야합니까? if(catid.trim().equals("0"))

코드에서이 변경 사항을 업데이트하고 확인하십시오.

+0

OP가 문자열 리터럴을 사용하고 있기 때문에,이 경우'=='는 String internation 때문에 실제로 작동합니다. 문제는'Nextpage.catid'가 한 번만 설정된다는 것입니다. –

관련 문제