在我的项目中,我为类别保留了不同的图片。当我点击每个类别图片时,我将类别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);
}
首次点击类别图片时,它会将类别ID 传递到下一页,并在下一页中设置该特定图片。之后我点击后退按钮(android后退按钮)并转到Firstpage.java并再次点击其他图像。但这次也存储了相同的图像。类别ID没有改变。类别ID不刷新...如何刷新类别ID?任何建议都会感激.......
答案 0 :(得分:1)
您要通过==运算符比较两个字符串,而不是通过equals方法进行比较,请尝试以下操作:
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);
}
答案 1 :(得分:0)
我认为问题在于您使用此if(catid=="0")
比较字符串值您应该使用if(catid.trim().equals("0"))
在代码中更新此更改并进行检查。
答案 2 :(得分: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
,但除非卸载类并且需要重新加载,否则不会再次执行赋值语句。